org.apache.avro.AvroRuntimeException: повторяющееся состояние поля в записи record_2: тип состояния: ОБЪЕДИНЕНИЕ pos: 4 и тип состояния: ОБЪЕДИНЕНИЕ pos: 1

#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 , какие-либо дубликаты или нет. Также, если у вас нет ключевых слов, вам не нужно заключать столбцы.