Как получить свойства SerDe существующей таблицы Hive
Мой коллега создал стол в улье и добавил хитрый SerDe Regex. Я хотел бы увидеть, что такое регулярное выражение, но команда "SHOW CREATE TABLE" не имеет его.
Есть ли другой способ просмотра 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. Спасибо!
1 ответ
Решение
Вы можете сделать 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=(.*)})