0

我得到的不是嵌套表,而是一个很长的标题,其中包含 sql 命令但没有错误。为什么它工作但实际上没有正确输入 json 数据?

CREATE external TABLE ranked (
    airlineRankings array<struct<
    overall_rating:TINYINT,
    seat_comfort_rating:TINYINT,
    cabin_staff_rating:TINYINT,
    food_beverages_rating:TINYINT,
    inflight_entertainment_rating:TINYINT,
    ground_service_rating:TINYINT,
    wifi_connectivity_rating:TINYINT,
    value_money_rating:TINYINT,
    recommended:TINYINT,
    review_amount:TINYINT,
    count:TINYINT,
    iata:string,
    icao:string,
    airline_link:string,
    call_sign:string,
    country:string,
    airline:string
      >>
      )
    ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
    LOCATION 's3://**********/'

JSON数据格式:

{
    "airlineRankings": [{
        "iata": "",
        "icao": "EVY",
        "airline_link": "34 Squadron, Royal Australian Air Force",
        "call_sign": "",
        "country": "Australia",
        "airline": "34 Squadron, Royal Australian Air Force",
        "overall_rating": 0,
        "seat_comfort_rating": 0,
        "cabin_staff_rating": 0,
        "food_beverages_rating": 0,
        "inflight_entertainment_rating": 0,
        "ground_service_rating": 0,
        "wifi_connectivity_rating": 0,
        "value_money_rating": 0,
        "recommended": 0,
        "review_amount": 0
    }
]
}
4

1 回答 1

1

你的 DDL 没问题。如果您在查询数组时遇到问题,您可能错过了数组对象的“取消嵌套”。

您的结构的示例查询如下所示:

select myRecord.icao from ranked
CROSS JOIN UNNEST(airlinerankings) AS myTable (myRecord);
于 2017-03-14T20:39:58.317 回答