我有json格式的数据。
[{ “文本”: “foo0”, “号码”:123},{ “文本”: “foo1”, “号码”:345},{ “文本”: “foo2的”, “号码”:678 },{ “文”: “foo3”, “号码”:901}]
{ “文本”: “foo0”, “号码”:123} { “文本”: “foo1”, “号码”:345} { “文”: “foo2的”, “号码”:678} { “文本”: “foo3”, “号码”:901}
创建外部表
create external table js_test_3
(
text string,
number string
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '/Serde'
然后我发起
select *
from js_test_3
结果我得到了
文字编号
{“number”:“123”,“text”:“foo0”} {“number”:“345”,“text”:“foo1”}
文字编号
foo0 123
我应该如何编写创建结果正确的列表的脚本?
文字编号
foo0 123
foo1 345
foo2 678
foo3 901
由于
答案 0 :(得分:0)
您正在使用的JsonSerDe期望输入一个文件,每行有一个完整的JSON。这是可取的,因为它能够在CR / LF上拆分输入(并在工作节点之间划分工作)。
如果你有一个格式正确的JSON列表,就像你在"正确的JSON"例如,您可以使用jq
之类的工具将输入文件转换为预期的格式。例如:
jq -c .[] correct.json > /serde-input.txt