创建 table 语句并添加条件以在 IMPALA 中用 NULL 替换 None 值

Create table statement and add condition to replace None values with NULL in IMPALA

下面是我的创建 table 语句。 一些值来自数据源,如“None”,我想在我的 CREATE TABLE 语句中添加一个条件,以检查是否有一个值等于“None”,将其替换为 NULL .在没有中间 table 的情况下使用 Impala 是否可能,然后使用 CASE STATMENT

将数据 ETL 到最终的 TABLE
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

更新: 将您的数据导入为 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 查询

None 是无法通过 create table 命令转换为 null 的数据 所以只需按 temp table

中的原样导入数据

然后使用 create table as select columns 然后将 column 替换为 None 在 select 查询中为空

创建 [外部] TABLE [如果不存在] db_name。]table_name [分区方式 (col_name[ ...])] [排序方式([列 [ 列 ...]])] [评论 'table_comment']

  • [行格式 row_format] [带有 SERDEPROPERTIES ('key1'='value1', 'key2'='value2', ...)]
  • [存储为 ctas_file_format] [位置 'hdfs_path']
  • [CACHED IN 'pool_name' [WITH REPLICATION = integer] | UNCACHED]
    
    [TBLPROPERTIES ('key1'='value1', 'key2'='value2', ...)] 作为 select_statement