r-将csv数据加载到配置单元表时出错



我在hadoop中有一个csv文件,我有一个配置单元表,现在我想把这个csv文件放入这个配置单元表中

我使用了加载load DATA local"path/to/csv/file"覆盖INTO TABLE表名;

最终出现以下错误:

Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ",  : 
Unable to retrieve JDBC result set for LOAD DATA local
'path/to/csv/file' overwrite INTO TABLE tablename 
(Error while processing statement: FAILED: 
ParseException line 1:16 missing INPATH at ''path/tp csv/file'' near '<EOF>'
)

注意:我正在r 中使用RJDBC连接进行尝试

我认为将CSV加载到配置单元表的命令是(当CSV在HDFS中时)。

LOAD DATA INPATH '/user/test/my.csv' INTO TABLE my_test;

由于您的文件已经存在于HDFS中,请删除关键字Local

LOAD DATA inpath"path/to/csv/file"覆盖INTO TABLE表名;

我开发了一个从csv文件生成配置单元脚本的工具。以下是一些关于如何生成文件的示例。工具--https://sourceforge.net/projects/csvtohive/?source=directory

  1. 使用Browse选择CSV文件,并设置hadoop根目录ex:/user/bigdataproject/

  2. 工具生成包含所有csv文件的Hadoop脚本,以下是生成Hadoop脚本,将csv插入Hadoop

    #!/bin/bash -v
    hadoop fs -put ./AllstarFull.csv /user/bigdataproject/AllstarFull.csv hive -f ./AllstarFull.hive

    hadoop fs -put ./Appearances.csv /user/bigdataproject/Appearances.csv hive -f ./Appearances.hive

    hadoop fs -put ./AwardsManagers.csv /user/bigdataproject/AwardsManagers.csv hive -f ./AwardsManagers.hive

  3. 生成的配置单元脚本示例

    CREATE DATABASE IF NOT EXISTS lahman;
    USE lahman;
    CREATE TABLE AllstarFull (playerID string,yearID string,gameNum string,gameID string,teamID string,lgID string,GP string,startingPos string) row format delimited fields terminated by ',' stored as textfile;
    LOAD DATA INPATH '/user/bigdataproject/AllstarFull.csv' OVERWRITE INTO TABLE AllstarFull;
    SELECT * FROM AllstarFull;

谢谢Vijay

相关内容

  • 没有找到相关文章

最新更新