gpt4 book ai didi

hadoop - HIVE 外部表 - 将空字符串设置为 NULL

转载 作者:可可西里 更新时间:2023-11-01 15:39:16 25 4
gpt4 key购买 nike

目前我在 Amazon EMR 上有一个 HIVE 0.7 实例。我正在尝试使用 Hive 0.11 在新的 EMR 集群上创建此实例的副本。

在我的 0.7 实例中,我有一个外部表,它将空字符串设置为 NULL。这是我创建表格的方式:

CREATE EXTERNAL TABLE IF NOT EXISTS tablename
(column1 string,
column2 string)
PARTITIONED BY (year STRING, month STRING, day STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
TBLPROPERTIES ('serialization.null.format' = '');

数据是这样添加到表中的:

ALTER TABLE tablename 
ADD PARTITION (year = '2013', month = '10', day='01')
LOCATION '/location_in_hdfs';

这在 0.7 中运行良好,但在 0.11 中它似乎没有将我的空字符串评估为 NULLS。有趣的是,创建具有相同数据和表定义的普通表似乎按预期将空字符串评估为 NULL。

在 0.11 中是否有不同的方法来使用外部表?

最佳答案

Hive 默认分区属性覆盖表属性。在您的 alter 语句中包含 SERDE 属性:

ALTER TABLE tablename  ADD PARTITION (year = '2013', month = '10', day='01') SET  
SERDEPROPERTIES ('serialization.null.format' = '');

关于hadoop - HIVE 外部表 - 将空字符串设置为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19506251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com