我能夠使用JSON Serde org.openx.data.jsonserde.JsonSerDe
創建Hive表,但是當我讀取Hive表中的數據時,我無法閱讀。JSON數據讀入Hive表
hive> create table emp (EmpId int , EmpFirstName string , EmpLastName string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe';
OK
Time taken: 2.148 seconds
hive> LOAD DATA INPATH '/user/cloudera/EmpData/emp.json' INTO table emp;
Loading data to table employee.emp
chgrp: changing ownership of 'hdfs://quickstart.cloudera:8020/user/hive/warehouse/employee.db/emp/emp.json': User does not belong to supergroup
Table employee.emp stats: [numFiles=1, totalSize=4163]
OK
Time taken: 1.141 seconds
hive> select * from emp;
OK
Failed with exception java.io.IOException:org.apache.hadoop.hive.serde2.SerDeException: Row is not a valid JSON Object - JSONException: A JSONObject text must end with '}' at 2 [character 3 line 1]
Time taken: 0.504 seconds
首先,我要感謝您的答覆。 我嘗試了你所建議的選項,但是現在我對所有字段都變爲「空」。我的JSON文件是正確的,我能夠正確解析它。 請參閱這是在蜂巢表造成的問題我的樣本數據: { \t 「的cols」: \t \t 「EMPID」, \t \t 「EmpFirstName」, \t \t 「EmpLastName」 \t], \t「數據「:[ \t \t [ \t \t \t 1, \t \t \t 」漢娜「, \t \t \t 「沃爾頓」 \t \t], \t \t [ \t \t \t 2, \t \t \t 「巴雷特」, \t \t \t 「門多薩」 \t \t], \t \t [ \t \t \t 3, \t \t \t 「卡姆登」, \t \t \t 「基德」 \t \t], \t \t [ \t \t \t 4, \t \t \t 「Illiana」, \t \t \t 「科利爾」 \t \t] \t ] } –
檢查我編輯的JSON規範 –