Я пытаюсь объединить несколько таблиц, и некоторые из этих полей имеют тип массива bigint.Когда я пытаюсь привести их в Hive, он продолжает выдавать мне «Выражение не в ключе GROUP BY 'field_name'.
Мой код выглядит следующим образом:
CREATE TABLE sample_table stored AS avro AS
SELECT cast(cast(rand()* 1000000000000000000 AS BIGINT) AS string) id,
'PERSON'AS person,
name AS name,
age AS age,
gender AS gender
FROM table_a
UNION ALL
SELECT cast(cast(rand()* 1000000000000000000 AS BIGINT) AS string) id,
'PERSON'AS person,
name AS name,
collect_list(
CAST(NULL AS BIGINT)
) AS age,
null AS gender
FROM table_b
Генерируемая ошибкавыглядит следующим образом:
Ошибка SQL [500051] [HY000]: [Cloudera] HiveJDBCDriver Ошибка обработки запроса / оператора. Код ошибки: 10025, состояние SQL: TStatus (statusCode: ERROR_STATUS, infoMessages: [*org.apache.hive.service.cli.HiveSQLException: ошибка при компиляции оператора: СБОЙ: SemanticException [Ошибка 10025]: Строка 4: 7 Выражение отсутствует в ключе GROUP BY 'age': 28: 27, org.apache.hive.service.cli.operation.Operation: toSQLException: Operation.java: 400, org.apache.hive.service.cli.operation.SQLOperation: prepare: SQLOperation.java: 187