【问题标题】:how to create external hive table using array of json objects如何使用 json 对象数组创建外部配置单元表
【发布时间】: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


【解决方案1】:

从您的 json 文件中删除方括号。它希望他们在

{...........}
{...........}
{...........}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多