2013-10-31 34 views
3

我的同事在蜂巢中創建了一個表,並添加了一個棘手的SerDe正則表達式。我想看看正則表達式是什麼,但「SHOW CREATE TABLE」命令沒有它。如何獲取現有蜂巢表的SerDe屬性

是否有任何其他方式來查看錶創建與SERDEPROPERTIES?

例子:

hive> CREATE TABLE foo (
    bar STRING 
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' 
WITH SERDEPROPERTIES ("input.regex" = "(.*)", "output.format.string" = "%1$s"); 

OK 
Time taken: 0.078 seconds 

hive> SHOW CREATE TABLE foo; 
OK 
CREATE TABLE foo(
    bar string COMMENT 'from deserializer') 
ROW FORMAT DELIMITED 
STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' 
LOCATION 
    'maprfs:/user/hive/warehouse/foo' 
TBLPROPERTIES (
    'transient_lastDdlTime'='1383248078') 
Time taken: 0.091 seconds, Fetched: 11 row(s) 

我使用蜂巢0.11。謝謝!

回答

6

你可以做一個describe extended這將顯示你的表的一切,包括你提到的serde屬性。

例如,對於你的表:

$ hive -e "describe extended foo" 
Detailed Table Information Table(tableName:foo, dbName:default, owner:cloudera, createTime:1383250992, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:bar, type:string, comment:null)], location:hdfs://localhost.localdomain:8020/user/hive/warehouse/foo, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.contrib.serde2.RegexSerDe, parameters:{output.format.string=%1$s, serialization.format=1, input.regex=(.*)}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[], parameters:{transient_lastDdlTime=1383250992}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) 

如果您在對象看回來,你可以看到下面的有趣的部分:

serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.contrib.serde2.RegexSerDe, parameters:{output.format.string=%1$s, serialization.format=1, input.regex=(.*)}) 
+0

你真棒老兄,謝謝! – nolanpro

+0

我們如何根據此輸出添加新的serde屬性? –