Как получить доступ к таблице apache kudu, созданной из impala, с помощью apache spark

Я загрузил виртуальную машину для быстрого запуска apache kudu и следовал примерам, приведенным на этой странице https://kudu.apache.org/docs/quickstart.html, на самом деле я создал таблицу с именем «sfmta», но когда я попытался получить доступ к таблице kudu с помощью spark-shell со следующим предложением:

val df = spark.sqlContext.read.options(Map("kudu.master" -> "quickstart.cloudera:7051","kudu.table" -> "sfmta")).kudu

я получаю эту ошибку

org.apache.kudu.client.NonRecoverableException: The table does not exist: table_name: "sfmta"

Я также пытался указать разные имена таблиц, такие как «default: sfmta», «default:: sfmta», с тем же результатом. Не могли бы вы сказать мне, почему это происходит? почему я не могу получить доступ к таблице куду? это для того, чтобы быть созданным с импалой?

Заранее спасибо.


person Joseratts    schedule 23.05.2017    source источник


Ответы (3)


Наконец, после того, как я спросил группу пользователей почты kudu, я нашел ответ на этот вопрос.

После проверки имен таблиц на странице http://quickstart.cloudera:8051/tables я смог увидеть полный имя таблицы, которую я хотел запросить, и вместо «sfmta» я должен использовать «impala:: default.sfmta», как в следующем предложении:

val df = spark.sqlContext.read.options(Map("kudu.master" -> "quickstart.cloudera:7051","kudu.table" -> "impala::default.sfmta")).kudu

Итак, после замены имени таблицы это сработало.

person Joseratts    schedule 29.05.2017

если вы создаете базу данных (вместо "по умолчанию"), таблица должна быть,

импала: имя_базы_данных.имя_таблицы

person Will    schedule 04.08.2017

Может быть, ответ Уилла содержит опечатку. Правильный вариант (2 двоеточия):

impala::database_name.table_name

Для БД по умолчанию:

impala::default.table_name

Он был протестирован с CDH 5.1X и Spark 1.6.X. Надеюсь, это сэкономит ваше время.

person paul_di    schedule 20.08.2019