Как загрузить данные в таблицу Hive и сделать их также доступными в Impala - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть таблица в Hive:

CREATE EXTERNAL TABLE sr2015(
creation_date STRING,
status STRING,
first_3_chars_of_postal_code STRING,
intersection_street_1 STRING,
intersection_street_2 STRING,
ward STRING,
service_request_type STRING,
division STRING,
section STRING )
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES (
'colelction.delim'='\u0002',
'field.delim'=',',
'mapkey.delim'='\u0003',
'serialization.format'=',', 'skip.header.line.count'='1',
'quoteChar'= "\"")

В таблицу загружаются данные следующим образом:

LOAD DATA INPATH "hdfs:///user/rxie/SR2015.csv" INTO TABLE sr2015;

Почему таблица доступна только в Hive?когда я пытаюсь получить к нему доступ в HUE / Impala Editor, я получаю следующую ошибку:

AnalysisException: не удалось разрешить ссылку на таблицу: 'sr2015'

, которая, похоже, говорит тамтакой таблицы нет, но таблица отображается на левой панели.

В Impala-shell ошибка отличается, как показано ниже:

ОШИБКА: AnalysisException: Не удалось загрузитьметаданные для таблицы: 'sr2015' CAUSED BY: TableLoadingException: не удалось загрузить метаданные для таблицы: sr2015 CAUSED BY: InvalidStorageDescriptorException: Impala не поддерживает таблицы этого типа.ПРИЧИНА: Библиотека SerDe 'org.apache.hadoop.hive.serde2.OpenCSVSerde' не поддерживается.

Я всегда думал, что таблица Hive и таблица Impala по сути одинаковы, и разница в том, что Impala - этоболее эффективный механизм запросов.

Может кто-нибудь помочь разобраться?Большое спасибо.

1 Ответ

0 голосов
/ 03 декабря 2018

Предполагая, что sr2015 находится в БД с именем db, чтобы сделать таблицу видимой в Impala, вы должны либо выполнить

сделать недействительными метаданные db;

или

аннулировать метаданные db.sr2015;

в оболочке Impala

Однако в вашем случае причина, вероятно, заключается в используемой вами версии Impala, так как она вообще не поддерживает формат таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...