我正在尝试使用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-输入tmp / test.json /apps/hive/warehouse/lib/test.json
请帮助我解决这个问题
答案 0 :(得分:0)
要将文件加载到配置单元中,请首先将文件复制到HDFS位置。如下所示:
hadoop fs -put /complete_path_to_my_json/json_to_upload.json /app/hive/a_temp_location
然后使用JSON SerDe创建表,如下所示:
create table if not exists my_json_table (id int, name string, designation string) row format serde 'org.apache.hive.hcatalog.d.JsonSerDe';
您可以使用以下语句将数据加载到表中:
load data inpath '/app/hive/a_temp_location/json_to_upload.json' into table my_json_table;