【发布时间】:2015-01-01 12:53:10
【问题描述】:
我有一个这样的 json 对象数组..
[
{
"id": 2,
"createdBy": 0,
"status": 0,
"utcTime": "Oct 14, 2014 4:49:47 PM",
"placeName": "21/F, Cunningham Main Rd, Sampangi Rama NagarBengaluruKarnatakaIndia",
"longitude": 77.5983817,
"latitude": 12.9832418,
"createdDate": "Sep 16, 2014 2:59:03 PM",
"accuracy": 5,
"loginType": 1,
"mobileNo": "0000005567"
},
{
"id": 4,
"createdBy": 0,
"status": 0,
"utcTime": "Oct 14, 2014 4:52:48 PM",
"placeName": "21/F, Cunningham Main Rd, Sampangi Rama NagarBengaluruKarnatakaIndia",
"longitude": 77.5983817,
"latitude": 12.9832418,
"createdDate": "Oct 8, 2014 5:24:42 PM",
"accuracy": 5,
"loginType": 1,
"mobileNo": "0000005566"
},
{
"id": 1,
"createdBy": 13,
"status": 1,
"utcTime": "Oct 14, 2014 4:57:43 PM",
"placeName": "21/F, Cunningham Main Rd, Sampangi Rama NagarBengaluruKarnatakaIndia",
"longitude": 77.5983817,
"latitude": 12.9832418,
"createdDate": "Sep 15, 2014 12:10:44 PM",
"accuracy": 5,
"loginType": 1,
"mobileNo": "8147708287"
},
{
"id": 3,
"createdBy": 0,
"status": 0,
"placeName": "no",
"longitude": 0,
"latitude": 0,
"createdDate": "Sep 16, 2014 6:45:50 PM",
"accuracy": 2,
"loginType": 1,
"mobileNo": "9861198611"
},
{
"id": 6,
"createdBy": 0,
"status": 0,
"utcTime": "Oct 14, 2014 4:49:47 PM",
"placeName": "no",
"longitude": 0,
"latitude": 0,
"createdDate": "Oct 8, 2014 6:51:35 PM",
"accuracy": 0,
"loginType": 1,
"mobileNo": "221133447"
},
{
"id": 5,
"createdBy": 0,
"status": 0,
"utcTime": "Oct 14, 2014 4:49:47 PM",
"placeName": "no",
"longitude": 0,
"latitude": 0,
"createdDate": "Oct 8, 2014 6:43:41 PM",
"accuracy": 0,
"loginType": 1,
"mobileNo": "5585869635"
}
]
我需要使用这个 json 对象数组在 hive 中创建外部表,为此我正在尝试这个不起作用的查询,请帮助我完成这个查询。
ADD JAR json-serde-1.1.9.2-Hive13.jar;
CREATE EXTERNAL TABLE mobile_structuring_table(
id int,
createdBy string,
status string,
utcTime string,
placeName string,
longitude double,
latitude double,
createdDate string,
accuracy string,
loginType string,
mobileNo string
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '/user/root/mobile_data/rest_api_mobile_data.json'
;
是这种 json 对象数组所需的任何特定 serde。
【问题讨论】:
-
有错误可以分享吗?
-
表正在创建,但是一旦您在 hcataloge 中打开它,它就会发出以下错误
java.io.IOException: org.apache.hadoop.hive.serde2.SerDeException: Row is not a valid JSON Object - JSONException: Missing value at 1 [character 2 line 1]因此表正在创建但没有用。
标签: arrays json hadoop hive user-defined-functions