#hive #hdfs #avro
#улей #hdfs #avro
Вопрос:
Я впервые отправляю вопрос. Я пытаюсь создать таблицу, объединив две существующие таблицы, среди которых один из моих столбцов представляет собой набор структур. Я делаю это в улье. Я хочу сохранить таблицу в формате AVRO.
Запрос, который я использую для создания таблицы, является:
create table emp_dtls_2_avro stored as AVRO as
select
'a.pk_dept' ,
'a.dept_id',
'a.dept_name',
Collect_list(Named_struct ("emp_fname", b.emp_fname, "emp_lname", b.emp_lname, "emp_id", b.emp_id, "emp_ssn", b.emp_ssn, "emp_title", b.emp_title, "emp_accnt_dts", b.acc_loc_dts_arr, "emp_add_dtls", b.emp_add_arr)) as emp_dtls
from
dept a
inner join
emp_dtls_1 b
on 'a.pk_dept' = 'b.fk_dept'
group by
'a.pk_dept',
'a.dept_id',
'a.dept_name';
Я столкнулся с ошибкой, которую я не могу понять и разрешить. Любая помощь будет оценена:
FAILED: SemanticException org.apache.avro.AvroRuntimeException: Duplicate field state in record record_2: state type:UNION pos:4 and state type:UNION pos:1.
Комментарии:
1. Вероятно, не связано, но, скорее всего:
on a.pk_dept = 'b.fk_dept'
должно быть:on a.pk_dept = b.fk_dept
(одинарных кавычек там быть не должно). То же самое вselect
group by
предложениях and .2. Привет, спасибо за ответ … Если я удалю все одинарные кавычки, я получу новую ошибку — «SemanticException org.apache.avro. Исключение SchemaParseException: недопустимый символ в: a.pk_dept». Одинарные кавычки устранили эту ошибку, но привели к вышеуказанной ошибке, которую теперь я не могу разрешить.
3. Я добавил одну одинарную кавычку, которую я пропустил — в ‘a.pk_dept’ = ‘b.fk_dept’
4. когда вы запускаете запрос select и видите результат, что он показывает? Можете ли вы, пожалуйста, опубликовать образец рисунка? Пытаюсь понять, есть ли у столбцов, созданных с помощью
select
, какие-либо дубликаты или нет. Также, если у вас нет ключевых слов, вам не нужно заключать столбцы.