我正在将一些文本数据加载到包含int
列的Apache Hive中。它将空值存储在意外位置。因此,我进行了一些测试:
create table testdata (c1 INT, c2 FLOAT) row format delimited fields terminated by ',' stored as textfile;
load data local inpath "testdata.csv" overwrite into table testdata;
select * from testdata;
测试数据。csv包含以下数据:
1,1.0
1, 1.0
1 ,1.0
1 , 1.0
如您所见,数据集在数字周围包含一些额外的空白。但这会导致hive在整数列中存储空值,而float被正确解析。
选择查询输出:
为什么会发生这种情况,以及如何正确处理这些情况?
1条答案
按热度按时间klsxnrf11#
你不能一步到位。首先将数据作为字符串加载到stg表中,然后通过删除空格从stg表加载到最终表中。
1.创建并加载如下表。
1.使用镶块通过裁剪空间加载到最终表中,并按如下方式正确转换