我在hadfs中喜欢以下json。
{"result": [{"sys_tags": {"display_value": "d1", "value": "v1"}, "user_input": {"display_value": "d2", "value": "v2"}}, {"sys_tags": {"display_value": "d1", "value": "v1"}, "user_input": {"display_value": "d2", "value": "v2"}}]}
我想在hive中创建一个外部表来分析数据。
我下载了json-serde-1.3.7-jar-with-dependencies.jar并添加到hive shell中。这是我跑的查询
CREATE EXTERNAL TABLE t2(result array<STRUCT<sys_tags STRUCT<display_value :STRING, value:STRING>>, STRUCT<user_input STRUCT<display_value :STRING, value:STRING>>>) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' location 'hdfs://localhost:9000/t2';
但它没有用。任何人都可以帮忙找出问题吗?
答案 0 :(得分:1)
<
声明中有一些不匹配:
且遗失CREATE
。
尝试,
CREATE EXTERNAL TABLE t2(
result array<STRUCT<sys_tags:STRUCT<display_value:STRING, value:STRING>,user_input:STRUCT<display_value:STRING, value:STRING>>>)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
location 'hdfs://localhost:9000/t2';
答案 1 :(得分:0)
它失败了,因为没有正确映射json属性,请尝试这样做:
CREATE EXTERNAL TABLE t2(result MAP<STRING, ARRAY<MAP<STRING,STRUCT<display_value :STRING, value:STRING>>>>) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' location 'hdfs://localhost:9000/t2';