我有一个名为sample.txt的文本文件。该文件看起来像:
abc,23,M
def,25,F
efg,25,F
我正在尝试使用以下命令在配置单元中创建表:
CREATE EXTERNAL TABLE ppldb(name string, age int,gender string)
ROW FORMAT
DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION '/path/to/sample.txt';
但数据并没有进入表格。当我运行查询时:
select count(*) from ppldb
我在输出中得到0。
数据无法加载到表中的原因是什么?
答案 0 :(得分:5)
Hive中外部表中的位置应为 HDFS目录,而不是文件的完整路径。 如果该目录不存在,那么我们将自动创建我们提供的位置。在您的情况下, /path/to/sample.txt 被视为目录。
因此,只需在 LOCATION 中输入 / path / to / ,并将sample.txt文件保留在目录中。它会起作用。
希望它有帮助...... !!!
答案 1 :(得分:1)
LOCATION
子句指示将存储表的位置,而不是从中检索数据的位置。将samples.txt文件移动到类似
hdfs dfs -copyFromLocal ~/samples.txt /user/tables/
您可以使用
将数据加载到配置单元中的表中create table temp(name string, age int, gender string)
row format delimited fields terminated by ','
stored as textfile;
load data inpath '/user/tables/samples.txt' into table temp;
那应该有用