我在将平面文件中的数据加载到配置单元表时获取空值。
我的表结构如下:
hive> create table test_hive (id int,value string);
我的平面文件是这样的:input.txt
1 a
2 b
3 c
4 d
5 e
6 F
7 G
8 j
当我运行以下命令时,得到的是空值:
hive> LOAD DATA LOCAL INPATH '/home/hduser/input.txt' OVERWRITE INTO TABLE test_hive;
hive> select * from test_hive;
OK<br>
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
屏幕截图:
hive> create table test_hive (id int,value string);
OK
Time taken: 4.97 seconds
hive> show tables;
OK
test_hive
Time taken: 0.124 seconds
hive> LOAD DATA LOCAL INPATH '/home/hduser/input2.txt' OVERWRITE INTO TABLE test_hive;
Copying data from file:/home/hduser/input2.txt
Copying file: file:/home/hduser/input2.txt
Loading data to table default.test_hive
Deleted hdfs://hydhtc227141d:54310/app/hive/warehouse/test_hive
OK
Time taken: 0.572 seconds
hive> select * from test_hive;
OK
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
NULL NULL
Time taken: 0.182 seconds
6条答案
按热度按时间vaqhlq811#
配置单元中的默认字段终止符是^a。您需要在CREATETABLE语句中明确指出您正在使用不同的字段分隔符。
与lorand bending在评论中指出的类似,使用:
您不需要指定位置,因为您正在创建托管表(而不是外部表)。
szqfcxe22#
配置单元的默认记录和字段分隔符列表:
\不
^a
^b类
^c级
按^v^a可在vim中插入^a。
3b6akqbq3#
您面临的问题是,在数据中,字段由“”分隔,并且在创建表时没有提到字段分隔符。因此,如果在创建配置单元表时没有提到字段分隔符,默认情况下,配置单元会将^a视为分隔符。
为了解决您的问题,您可以重新创建包含以下语法的表,这样就可以了。
CREATE TABLE test_hive(id INT, value STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ';
cgvd09ve4#
解决办法很简单。表的创建方式不正确。
解决您的问题或任何其他问题的简单方法是知道如何加载数据。
创建表[如果不存在]mytablename(id int,值字符串)
行格式分隔
以'/t'结尾的字段
存储为文本文件;
现在让我解释一下代码:
创建表的第一行。[if not exist]是可选的,它指示表是否存在,而不是覆盖它。更多的是安全措施。
第二行在表级别为结构化字段指定分隔符。
第三项可以包含任何单个字符,但默认值为“\001”/“t”表示制表符空间:在您的例子中,“|”表示相邻的数据,用“|”分隔一个字符空间。等等。。。
第四行:指定要存储数据的文件类型。文件可以是textfile、sequencefile、rcfile或binary sequencefile。或者,可以将数据的存储方式指定为java输入和输出类。
本地加载时:
locd data local inpath“/your/data/path.csv”[覆盖]到表mytablename;
总是尝试用一个简单的select*语句检查数据。
希望有帮助。
yzuktlbb5#
元素是用空格还是制表符分隔的?让我们按照这些步骤来做。如果分隔为空格,请使用“”而不是“\t”确定。
比你必须进入
现在您将获得准确的预期输出“filename”。
ukxgm1gy6#
请检查数据集日期列它应遵循日期格式yyyy mm dd如果字符串的格式为“yyyy mm dd”,则返回与该年/月/日对应的日期值。如果字符串值与此格式不匹配,则返回null。hive官方文档