我正在尝试将以下格式的数据导入配置单元表
[
{
"identifier" : "id#1",
"dataA" : "dataA#1"
},
{
"identifier" : "id#2",
"dataA" : "dataA#2"
}
]
我有多个这样的文件,我希望每个{}在表中形成一行。这就是我尝试过的:
CREATE EXTERNAL TABLE final_table(
identifier STRING,
dataA STRING
) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION "s3://bucket/path_in_bucket/"
不过,这并不是为每个{}创建一行。我也试过了
CREATE EXTERNAL TABLE final_table(
rows ARRAY< STRUCT<
identifier: STRING,
dataA: STRING
>>
) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION "s3://bucket/path_in_bucket/"
但这也不管用。是否有某种方法可以将输入指定为一个数组,每个记录都是配置单元查询数组中的一个项?有什么建议吗?
2条答案
按热度按时间liwlm1x91#
数据文件中的json记录必须每行显示一条,空行将生成空记录。
这个json应该可以工作
{“identifier”:“id#1”,“dataa”:“dataa#1”},{“identifier”:“id#2”,“dataa”:“dataa#2”}
bvn4nwqk2#
这是你需要的
方法1:向数组中添加名称
数据
sql语句
输出
方法2-数据无变化
数据
sql语句
输出