Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 配置单元外部表-将空字符串设置为NULL_Hadoop_Hive_Hdfs_Amazon Emr_External Tables - Fatal编程技术网

Hadoop 配置单元外部表-将空字符串设置为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

目前我在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 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' = '');