我正在尝试从这个json上传数据:
JSON-A
[
{"name": "james", "id": 41},
{"name": "scott", "id": 62},
{"name": "abhi", "id": 16},
{"name": "kevin", "id": 53},
{"name": "beau", "id": 12},
{"name": "shally", "id": 35},
{"name": "jude", "id": 53},
{"name": "jason", "id": 77},
{"name": "hongjian", "id": 35},
{"name": "madhur", "id": 6}
]
如果它具有像
这样的父“数据”键JSON-B
["data":{"name": "james","id": 41"},{.....}]
然后我知道我可以这样做:
CREATE EXTERNAL TABLE IF NOT EXISTS test.test (
`data` array<struct<`name`:string,`id`:bigint>>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1'
) LOCATION 's3://test-bucket/';
但是JSON-A的方法应该是什么?
答案 0 :(得分:2)
您必须在&#39; s3:// test-bucket /&#39;:中保存一个文件
{"name": "james", "id": 41}
{"name": "scott", "id": 62}
{"name": "abhi", "id": 16}
{"name": "kevin", "id": 53}
{"name": "beau", "id": 12}
{"name": "shally", "id": 35}
{"name": "jude", "id": 53}
{"name": "jason", "id": 77}
{"name": "hongjian", "id": 35}
{"name": "madhur", "id": 6}
答案 1 :(得分:1)
我认为这不会起作用,因为Hive / SerDe假设您的文本文件每行包含一条记录。来自org.openx.data.jsonserde.JsonSerDe documentation:
重要!!!请阅读以下内容! Json记录必须是每行一个,也就是说,serde不能使用多行Json。