我正在尝试使用 JSON Serde 将 JSON 文件加载到 Hive 中。我能够一次让它为一个 JSON 文件工作,但我想知道是否有可能一次在 JSON 文件中有多个记录并一次加载它们。给出一个想法,我的 JSON 文件如下所示:
文件 1
{"styles": {"style": "Deep House"}, "genres": {"genre": "Electronic"}}
文件 2
{"styles": {"style": "Rock"}, "genres": {"genre": "Techno Rock"}}
我将它们组合成一个 JSON 文件,如下所示:
{"styles": {"style": "Deep House"}, "genres": {"genre": "Electronic"}},{"styles": {"style": "Rock"}, "genres": {"genre": "Techno Rock"}}
当我加载这个文件时,只加载了第一条记录。我的表 DDL 如下:
create table json_data (
styles struct<style: string>,
genres struct<genre: string>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe';
我使用标准LOAD
命令。
LOAD DATA LOCAL INPATH '/home/user/json_data' INTO TABLE json_data;
当我查询表时,只插入了一条记录。
select * from json_data;
{"style":"Deep House"} {"genre":"Electronic"}
Time taken: 0.76 seconds
我在创建 JSON 文件时做错了吗?或者不可能在一个 JSON 文件中有两条记录?任何帮助将非常感激。
谢谢,TM