创建 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
下面是我的创建 table 语句。 一些值来自数据源,如“None”,我想在我的 CREATE TABLE 语句中添加一个条件,以检查是否有一个值等于“None”,将其替换为 NULL .在没有中间 table 的情况下使用 Impala 是否可能,然后使用 CASE STATMENT
将数据 ETL 到最终的 TABLECREATE 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']
-
[TBLPROPERTIES ('key1'='value1', 'key2'='value2', ...)] 作为 select_statement[CACHED IN 'pool_name' [WITH REPLICATION = integer] | UNCACHED]