我有一张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:异常:语法错误
任何人都可以帮助我解决我在这里失踪的问题。
答案 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数据库。