我在hadoop中有一个csv文件,并且我有一个Hive表,现在我想将该cvv文件放入该Hive表中
我已经使用加载LOAD DATA本地'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文件生成配置单元脚本的工具。以下是一些有关如何生成文件的示例。工具-https: //sourceforge.net/projects/csvtohive/?source=directory
使用“浏览”选择一个CSV文件,然后将hadoop根目录设置为:/ user / bigdataproject /
工具生成具有所有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
生成的Hive脚本样本
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;
谢谢维杰
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句