【问题标题】:LOAD DATA LOCAL INPATH issue with Impala tableImpala 表的 LOAD DATA LOCAL INPATH 问题
【发布时间】:2017-07-18 07:43:27
【问题描述】:

我有一个具有以下结构的 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 行中的语法错误: 加载数据本地路径'/tmp/RtmpWPwtl... ^ 遇到:标识符 预期:INPATH

原因:异常:语法错误

谁能帮我解决我在这里缺少的东西。

【问题讨论】:

    标签: hive impala


    【解决方案1】:

    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 db。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • sasi: 非常感谢您的回答,但我仍然注意到错误 > LOAD DATA LOCAL INFILE '/tmp/RtmpWPwtl0/file30a153ae2e38.txt' into table c90;查询:将 DATA LOCAL INFILE '/tmp/RtmpWPwtl0/file30a153ae2e38.txt' 加载到表 c90 错误:AnalysisException:第 1 行中的语法错误:加载 DATA LOCAL INFILE '/tmp/RtmpWPwtl ... ^ 遇到:IDENTIFIER 预期:INPATH CAUSED BY : 例外:语法错误
      猜你喜欢
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多