【发布时间】:2021-04-01 21:13:25
【问题描述】:
我正在创建一个基于包含许多 JSON blob 的大 JSON 文件的表。
以下是 JSON 文件中的几行:
{"user_id": "047b5bba", "primary_status": "available", "secondary_status": "available", "start_time": "2021-03-01"}
{"user_id": "047b5bba", "primary_status": "working", "secondary_status": "available", "start_time": "2021-03-02"}
{"useuser_idrId": "047b5bba", "secondary_status": "working", "start_time": "2021-03-03"}
{"user_id": "047b5bba", "secondary_status": "complete", "start_time": "2021-03-04"}
因此您可以看到 JSON blob 中有时会缺少 primary_status。
我想创建一个具有以下架构的表:
CREATE TABLE IF NOT EXISTS {{ params.namespace }}.fct_purecloud_users_incremental (
`user_id` STRING,
`primary_status` STRING,
`secondary_status` STRING,
`start_time` STRING
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
STORED AS TEXTFILE
LOCATION '<file_path>'
但是我发现Hive中的表是这样的
user_id | primary_status | secondary_status | start_time
047b5bba available available 2021-03-01
047b5bba working available 2021-03-02
047b5bba null null null
047b5bba null null null
看起来 JSON blob 中没有 primary_status 字段,它将无法解析剩余的字段。
有谁知道如何解决这个问题?谢谢!
【问题讨论】:
标签: json hadoop hive hiveql amazon-athena