Я пытаюсь создать внешнюю таблицу в улье, которая извлекает данные json в качестве ответа веб-службы.Ошибка создания внешней таблицы в улье для сохранения данных JSON
Данные JSON файл приведен ниже, на основании которого я создал внешнюю таблицу схемы:
{
"location": {
"name": "Paris",
"region": "Ile-de-France",
"country": "France",
"lat": 48.87,
"lon": 2.33,
"tz_id": "Europe/Paris",
"localtime_epoch": 1486792043,
"localtime": "2017-02-11 5:47"
},
"current": {
"last_updated_epoch": 1486792043,
"last_updated": "2017-02-11 05:47",
"temp_c": 0.0,
"temp_f": 32.0,
"is_day": 0,
"condition": {
"text": "Mist",
"icon": "//cdn.apixu.com/weather/64x64/night/143.png",
"code": 1030
},
"wind_mph": 8.1,
"wind_kph": 13.0,
"wind_degree": 330,
"wind_dir": "NNW",
"pressure_mb": 1019.0,
"pressure_in": 30.6,
"precip_mm": 0.0,
"precip_in": 0.0,
"humidity": 74,
"cloud": 0,
"feelslike_c": -4.0,
"feelslike_f": 24.8
}
}
команду Создать внешнюю таблицу приводится ниже:
CREATE EXTERNAL TABLE weatherdata (
location STRUCT<
name:STRING,
region:STRING,
country:STRING,
lat:FLOAT,
lon:FLOAT,
tz_id:STRING,
localtime:STRING>,
current STRUCT<
last_updated_epoch:BIGINT,
last_updated:STRING,
temp_c:FLOAT,
temp_f:FLOAT,
is_day:INT,
condition:STRUCT<text:STRING, icon:STRING, code:INT>,
wind_mph:FLOAT, wind_kph:FLOAT,
wind_degree:INT,
wind_dir:STRING,
pressure_mb:FLOAT,
pressure_in:FLOAT,
precip_mm:FLOAT,
precip_in:FLOAT,
humidity:INT,
cloud:INT,
feelslike_c:FLOAT,
feelslike_f:FLOAT>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe';
Я получаю ошибку ниже:
FAILED: ParseException line 9:3 cannot recognize input near 'current' 'STRUCT' '<' in column specification
Я попытался создать эту внешнюю таблицу с полем «current» as «curr», чтобы проверить и таблица была создана успешно. Очевидно, что при загрузке данных «json», приведенных выше, в эту таблицу были загружены только «данные местоположения», а «текущие» данные были нулевыми. Is 'current' ключевое слово в улье? В чем проблема ? Пожалуйста, помогите решить эту проблему.
Вы 'Состояние: STRUCT', так почему нет': '' на location' или 'current'? –
@ cricket_007 ':' используется только для внутренних структурных переменных. –