我有一个带有Json数据的文件,它采用以下形式:
前:
{
"Name": "xxxx",
"Address": [{
"Street": "aa",
"City": "bbb"
}, {
"Street": "ccc",
"City": "ddd",
"Country": "eee"
}]
}
上面的Json是一个有效的Json。我想使用JsonSerde在上面的数据上创建一个hive表。
答案 0 :(得分:0)
创建包含所有可能字段的表。如果json中不存在field,则select将返回NULL:
CREATE EXTERNAL TABLE your_table (
Name string,
Address array<struct<Street:string,City:string,Country:string>>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
如果JSON文件中的名称与Hive保留字冲突,则在表定义中添加映射和重命名名称:
WITH SERDEPROPERTIES ('mapping.renamed_column'='original_column')
并重命名您的表格列。
将您的文件放在表格位置。
另请参阅文档,其中包含一些示例:https://github.com/rcongiu/Hive-JSON-Serde