Я создал внешнее разделение таблицы на два столбца. Два столбца - «страна» и «штат» хранятся как SEQUENCEFILE.
Теперь я пытаюсь загрузить данные в таблицу с помощью следующей команды в Impala, запущенной через редактор Hue -
load data inpath '/usr/temp/input.txt'
into table partitioned_user
partition (country = 'US', state = 'CA');
Я получаю следующую ошибку -
AnalysisException: значение ключа раздела может привести к потере точности. Потребуется преобразовать "США" в "VARCHAR (64)" для столбца раздела: страна
Что я делаю неправильно? Таблица, которую я вставляю, имеет такие столбцы, как и все они имеют тип VARCHAR (64) - first_name, last_name, country, state.
Файл input.txt содержит данные только для первых двух столбцов. Где я ошибаюсь?
String
, а поддержкаVarchar(x)
является поздним и косметическим дополнением 2. Ключи разделов управляются как метаданные (в Metastore DB + в именах каталогов HDFS), не хранятся в файлах данных, поэтому они используют другую кодовую базу и плохо поддерживают ничего, кроме простыхString
-with-alphanum-chars илиInt
3. b> Impala и Hive имеют разную базу кода на разных языках, то, что работает в Hive, может не работать в Impala == ›используйтеString
для ключей разделения и попробуйте свои команды как в Hive, так и в Impala, чтобы увидеть, что работает. - person Samson Scharfrichter   schedule 19.07.2018