我有一些json文件,其中文件中没有换行符(\ n)。因此,当我尝试将文件加载到HIVE表中时,某些数据将被忽略。如何在表示表中行的每个JSON对象之后的后面的json文件中插入换行符?
?答案 0 :(得分:0)
如果您的JSON始终以相同的属性开头,则可以将其用作确定新JSON对象开始的签名,并用\n<signature>
替换每次出现的情况
例如{"id":"12","name":"Nick"}{"id":"13","name"="Bob"}
在这种情况下,起始签名为{"id":
,应将其替换为\n{"id":
例如,使用perl:
echo '{"id":"12","name":"Nick"}{"id":"13","name"="Bob"}' | perl -pe 's/(\{\"id\":)/\n$1/g'
输出:
{"id":"12","name":"Nick"}
{"id":"13","name"="Bob"}
它会在开始时生成一个额外的\n
,在加载或使用tblproperties("skip.header.line.count"="1")
时跳过它。
答案 1 :(得分:0)
下载jq
并使用最小过滤器:
jq . inputfile