Существует пустой HBase стол с двумя семействами колонки:Определение Hive внешней таблицы сверху HBase существующей таблицы
create 'emp', 'personal_data', 'professional_data'
Теперь я пытаюсь отобразить внешнюю таблицу Hive к ней, что бы естественно, есть некоторые столбцы:
CREATE EXTERNAL TABLE emp(id int, city string, name string, occupation string, salary int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":id,
personal_data:city,
personal_data:name,
professional_data:occupation,
professional_data:salary")
TBLPROPERTIES ("hbase.table.name" = "emp", "hbase.mapred.output.outputtable" = "emp");
Теперь ошибка, что я получаю это:
FAILED: Ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException (сообщение: org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDe: столбцы имеют 5 элементов, а hbase.columns.mapping имеет 6 элементов (считая ключ, если он неявный))
Не могли бы вы помочь мне? Я делаю что-то неправильно?
Но будет ли он отображать столбец Hive id в ключе Hbase? Или я что-то не так понял? Спасибо за ваш ответ :) – Dennis
Да, я несколько раз перечитывал этот бит документации, и это меня очень смутило. Большое спасибо cheseaux! Он работает отлично. Хорошего дня. – Dennis