无法使用 json serde 在配置单元上上传 json 文件

Unable to upload json file on hive using json serde

我正在尝试使用 json serde 加载 json 文件。我已经成功添加了 serde jar 文件。

1) 我的 json jar 文件放在路径 /apps/hive/warehouse/lib/ 我 运行 这个命令成功了

add jar hdfs:///apps/hive/warehouse/lib/json-serde-1.3-jar-with-dependencies.jar; converting to local hdfs:///apps/hive/warehouse/lib/json-serde-1.3-jar-with-dependencies.jar Added [/tmp/6f1a54b9-65c4-4e32-8e87-25d60ef775c6_resources/json-serde-1.3-jar-with-dependencies.jar] to class path Added resources: [hdfs:///apps/hive/warehouse/lib/json-serde-1.3-jar-with-dependencies.jar] 

2) 现在,当我尝试在此路径 /apps/hive/warehouse/lib/ 或 tmp/ 上上传 json 文件时 使用 ambari GUI。我无法上传,它给出了错误 500。见附图 3) 我也试过这个命令但是因为我无法上传 json 文件。所以,它不起作用

hadoop fs -put tmp/test.json /apps/hive/warehouse/lib/test.json

请帮我解决这个问题

要将文件加载到配置单元中,首先将文件复制到 HDFS 位置。如下图:

hadoop fs -put /complete_path_to_my_json/json_to_upload.json /app/hive/a_temp_location

然后,一旦您使用 JSON SerDe 创建了 table,如下所示:

create table if not exists my_json_table (id int, name string, designation string) row format serde 'org.apache.hive.hcatalog.d.JsonSerDe';

您可以使用以下语句将数据加载到 table 中:

load data inpath '/app/hive/a_temp_location/json_to_upload.json' into table my_json_table;