问题描述
我正在尝试为 .txt 格式的 json 文件创建一个 hive 外部表。我尝试了几种方法,但我认为应该如何定义 hive 外部表是错误的:
我的示例 JSON 是:
[[
{
"user": "ron","id": "17110","addr": "Some address"
},{
"user": "harry","id": "42230","addr": "some other address"
}]]
如您所见,它是数组内的数组。这似乎是有效的 json,由 API 返回,尽管我读过一些帖子说 json 应该以 '{'
开头无论如何,我正在尝试创建一个这样的外部表:
CREATE EXTERNAL TABLE db1.user(
array<array<
user:string,id:string,desc:string
>>)
PARTITIONED BY(date string)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS TEXTFILE
LOCATION '/tmp/data/addr'
这不起作用。类似的东西也不起作用
CREATE EXTERNAL TABLE db1.user(
user string,id string,desc string
)PARTITIONED BY(date string)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS TEXTFILE
LOCATION '/tmp/data/addr'
在尝试修改 json 文本文件后,将 [ 替换为 { 等,添加分区后我仍然无法使用 select * 查询它。我缺少表结构中的一个关键部分。
你能帮我让表正确读取我的 JSON 吗?
如果需要,我可以修改输入 JSON,如果双 [[ 有问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)