Hadoop 配置单元外部表-将空字符串设置为NULL
目前我在AmazonEMR上有一个Hive0.7实例。我正在尝试使用Hive 0.11在新的EMR群集上创建此实例的副本 在我的0.7实例中,我有一个将空字符串设置为NULL的外部表。以下是我创建表的方式:Hadoop 配置单元外部表-将空字符串设置为NULL,hadoop,hive,hdfs,amazon-emr,external-tables,Hadoop,Hive,Hdfs,Amazon Emr,External Tables,目前我在AmazonEMR上有一个Hive0.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 D
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中,它似乎没有将空字符串计算为null。有趣的是,使用相同的数据和表定义创建一个普通表似乎会像预期的那样将空字符串计算为null
对于0.11中的外部表,是否有其他方法可以做到这一点?配置单元默认分区属性覆盖表属性。在alter语句中包括SERDE属性:
ALTER TABLE tablename ADD PARTITION (year = '2013', month = '10', day='01') SET
SERDEPROPERTIES ('serialization.null.format' = '');
配置单元默认分区属性覆盖表属性。在alter语句中包括SERDE属性:
ALTER TABLE tablename ADD PARTITION (year = '2013', month = '10', day='01') SET
SERDEPROPERTIES ('serialization.null.format' = '');