Создать оператор таблицы и добавить условие для замены значений None на NULL в IMPALA - PullRequest
0 голосов
/ 13 июля 2020

Bellow - это мой оператор создания таблицы. Некоторые значения поступают из источника данных как «None» и хотят добавить условие в мой оператор CREATE TABLE, чтобы проверить, заменяет ли значение, равное «None», его значением NULL. Возможно ли это с Impala без промежуточной таблицы, а затем ETL данных в последнюю ТАБЛИЦУ с CASE STATMENT

CREATE TABLE IF NOT EXISTS customer_db.customers_table(
`customer_id` BIGINT NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
`ts` BIGINT NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
`customer_name` STRING NULL DEFAULT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
PRIMARY KEY (customer_id, ts)
)
PARTITION BY RANGE (`ts`)(PARTITION VALUE = 0)
STORED AS KUDU

1 Ответ

2 голосов
/ 28 июля 2020

Обновление: импортируйте данные в формате CSV. Используйте Notepad ++ для замены none на null Импортируйте его https://docs.cloudera.com/machine-learning/cloud/import-data/topics/ml-loading-csv-data-into-an-impala-table.html

Попробуйте использовать create table в качестве запроса select

Нет данных, которые нельзя преобразовать в null с помощью команды create table Поэтому просто импортируйте данные, как они есть во временной таблице

Затем используйте create table в качестве столбцов выбора, затем замените столбец с None на null в запросе выбора

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] db_name. ] имя_таблицы [РАЗДЕЛЕНИЕ ПО (имя_столбца [, ...])] [СОРТИРОВКА ПО ([столбец [, столбец ...]])] [КОММЕНТАРИЙ 'комментарий_таблицы']

  • [ФОРМАТ СТРОКИ формат_строки ] [WITH SERDEPROPERTIES ('key1' = 'value1', 'key2' = 'value2', ...)]
  • [СОХРАНЕНО КАК ctas_file_format] [LOCATION 'hdfs_path']
  • [CACHED IN 'pool_name' [WITH REPLICATION = integer] | UNCACHED]
    
    [TBLPROPERTIES ('key1' = 'value1', 'key2' = 'value2', ...)] AS select_statement
...