从JSON数据创建配置单元表

时间:2017-06-12 18:02:59

标签: json hive hive-serde

我有一个带有Json数据的文件,它采用以下形式:

前:

 {
    "Name": "xxxx",
    "Address": [{
        "Street": "aa",
        "City": "bbb"
    }, {
        "Street": "ccc",
        "City": "ddd",
        "Country": "eee"
    }]
}

上面的Json是一个有效的Json。我想使用JsonSerde在上面的数据上创建一个hive表。

1 个答案:

答案 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