使用Impala表加载DATA LOCAL INPATH问题

时间:2017-07-18 07:43:28

标签: hive impala

我有一张Impala表" ca1"具有以下结构

[abcd.us.localhost.com:21000] > desc ca1;
Query: describe ca1
+-------+--------+---------+
| name  | type   | comment |
+-------+--------+---------+   
| speed | double |         |
| dist  | double |         |
+-------+--------+---------+
Fetched 2 row(s) in 0.01s

我想使用 LOAD DATA LOCAL INPATH 作为我的文件加载该表中的数据" file30a147fdbcea.txt"存在于本地文件系统中,但我遇到错误,而在Hive中同样的事情。

查询:

[abcd.us.localhost.com:21000] > load data local inpath 
'/tmp/RtmpWPwtl0/file30a147fdbcea.txt' into table ca1;
  

错误:AnalysisException:第1行中的语法错误:       加载数据本地inpath' / tmp / RtmpWPwtl ...                 ^       遇到:IDENTIFIER       预期:INPATH

     

CAUSED BY:异常:语法错误

任何人都可以帮助我解决我在这里失踪的问题。

2 个答案:

答案 0 :(得分:0)

我认为下面的代码会起作用。根据您的文本文件更改分隔符('|')。

 LOAD DATA LOCAL INFILE '/tmp/RtmpWPwtl0/file30a147fdbcea.txt' INTO TABLE ca1 fields terminated by '|' lines terminated by '\n';

答案 1 :(得分:0)

Impala是Cloudera产品&其 LOAD DATA 语句仅导入 HDFS 中的文件,而不是从本地文件系统导入文件。

完整语法:

LOAD DATA INPATH 'hdfs_file_or_directory_path' [OVERWRITE] INTO TABLE tablename
   [PARTITION (partcol1=val1, partcol2=val2 ...)]

LOAD DATA LOCAL INPATH 适用于Hive命令行/直线,但不适用于Impala,但Impala会写入Hive数据库。