配置单元外部表的json文件

7tofc5zh  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(367)

我有json格式的数据。
对的
[{“text”:“foo0”,“number”:123},{“text”:“foo1”,“number”:345},{“text”:“foo2”,“number”:678},{“text”:“foo3”,“number”:901}]
不正确的
{“text”:“foo0”,“number”:123}{“text”:“foo1”,“number”:345}{“text”:“foo2”,“number”:678}{“text”:“foo3”,“number”: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

结果我得到了
对json正确(检索行数相同的元素)
文本编号
{“number”:“123”,“text”:“foo0”}{“number”:“345”,“text”:“foo1”}
对于不正确的json-(仅检索第一个元素)
文本编号
第0 123页
如何编写脚本来创建结果正确的列表?
文本编号
第0 123页
食品345
食品2 678
食品3 901
谢谢

kmynzznz

kmynzznz1#

您使用的jsonserde需要一个文件作为输入,每行包含一个完整的json。这是可取的,因为它能够在cr/lf上分割输入(并在工作节点之间分割工作)。
如果您有一个格式良好的json列表,如“correct json”示例中所示,那么可以使用 jq 将输入文件转换为预期格式。例如:

jq -c .[] correct.json > /serde-input.txt

相关问题