2015-11-25 5 views
0

У меня есть внешняя таблица с данными JSON, и я использую JsonSerde для заполнения данных в таблице. Я правильно заполняю данные, и когда я запрашиваю данные, я могу правильно видеть результаты.Hive JSON Serde MetaStore Issue

Но, когда я использую команду desc на этой таблице, я получаю текст from deserializer для всех комментариев к столбцу.

Ниже приведено создание таблицы ddl.

CREATE EXTERNAL TABLE IF NOT EXISTS my_table (
    field1 string COMMENT 'This is a field1', 
    field2 int COMMENT 'This is a field2', 
    field3 string COMMENT 'This is a field3', 
    field4 double COMMENT 'This is a field4' 
    ) 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.JsonSerde' 
    Location '/user/uszszb6/json_test/data'; 

Записи в файле данных.

{"field1":"data1","field2":100,"field3":"more data1","field4":123.001} 
{"field1":"data2","field2":200,"field3":"more data2","field4":123.002} 
{"field1":"data3","field2":300,"field3":"more data3","field4":123.003} 
{"field1":"data4","field2":400,"field3":"more data4","field4":123.004} 

Когда я использую команду desc my_table, я получаю нижний вывод.

+-----------+------------+--------------------+--+ 
    | col_name | data_type |  comment  | 
    +-----------+------------+--------------------+--+ 
    | field1 | string  | from deserializer | 
    | field2 | int  | from deserializer | 
    | field3 | string  | from deserializer | 
    | field4 | double  | from deserializer | 
    +-----------+------------+--------------------+--+ 

JsonSerde не может следить за комментариями надлежащим образом. Я также пробовал с другим JSONSerde, как

org.openx.data.jsonserde.JsonSerDe 
org.apache.hive.hcatalog.data.JsonSerDe 
com.amazon.elasticmapreduce.JsonSerde 

Но выход команды desc такой же. Существует билет JIRA для этой ошибки [https://issues.apache.org/jira/browse/HIVE-6681][1]

Согласно билету разрешено в версии 0.13, я использую куст 1.2.1, но все же я столкнулся с этой проблемой.

Не могли бы вы поделиться своими мыслями по решению этой проблемы.

ответ

0

Да, похоже, что это ошибка улья, которая затрагивает все Json SerDes, но вы пробовали использовать DESCRIBE EXTENDED?

DESCRIBE EXTENDED my_table; 

hive> describe extended json_serde_test; 
OK 
browser     string     from deserializer 
device_uuid    string     from deserializer 
custom     struct<customer_id:string> from deserializer 

Detailed Table Information 
Table(tableName:json_serde_test,dbName:default, owner:rcongiu, 
createTime:1448477902, lastAccessTime:0, retention:0, 
sd:StorageDescriptor(cols:[FieldSchema(name:browser, type:string, 
comment:hello), FieldSchema(name:device_uuid, type:string, comment:my 
name is elder price), FieldSchema(name:custom, 
type:struct<customer_id:string>, comment:null)], 
location:hdfs://localhost:9000/user/hive/warehouse/json_serde_test, 
inputFormat:org.apache.hadoop.mapred.TextInputFormat, 
outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, 
compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, 
serializationLib:org.openx.data.jsonserde.JsonSerDe, parameters: 
{serialization.format=1, mapping.customer_id=Customer ID}), 
bucketCols:[], sortCols:[], parameters:{}, 
skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], 
skewedColValueLocationMaps:{}), storedAsSubDirectories:false), 
partitionKeys:[], parameters:{numFiles=1, 
transient_lastDdlTime=1448477903, COLUMN_STATS_ACCURATE=true, 
totalSize=128, numRows=0, rawDataSize=0}, viewOriginalText:null,  
viewExpandedText:null, tableType:MANAGED_TABLE) 
Time taken: 0.073 seconds, Fetched: 5 row(s) 

Будет выводить JSON-иш подробное описание, которое включает в себя comments..kind из трудно читать, но он показывает мне комментарии и может быть достаточно для вашего purposes..or нет.

+0

Да, я пробовал это, но ожидание - получить его от desc my_table. Кроме того, извлечение информации о комментариях будет очень сложным. – Shivaprasad

Смежные вопросы