將平面文件中的數據加載到配置單元表中時,我得到空值。
我的表結構是這樣的:將平面文件中的數據加載到配置單元表中時獲取空值
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
也許你需要指定如何行/列中輸入文件加載到一個蜂巢表時被分隔。您可以嘗試這樣的:'創建表test_hive(ID INT,字符串值)行格式分隔的字段TERMINATED BY「」存儲爲TEXTFILE LOCATION「/用戶/ Hadoop的/蜂房/輸入」;'你面對 –
問題是因爲在你的數據的字段之間用''分隔,並且在創建表格時你沒有提到字段分隔符。因此,如果您在創建配置單元表時未提及字段分隔符,默認情況下,配置單元將^ A視爲分隔符。 因此,要解決您的問題,您可以重新創建表格提及下面的語法,它會工作。 CREATE TABLE test_hive(ID INT,值STRING) 行格式分隔字段TERMINATED BY'「; –