在Hadoop中自动将csv数据上载到表中

在Hadoop中自动将csv数据上载到表中,csv,hadoop,Csv,Hadoop,我真的很业余。我正在尝试将csv数据自动导入到驻留在Hadoop中的表中。csv文件将驻留在服务器中。我一直在谷歌上搜索,似乎我必须编写一个shell脚本将csv文件上传到HDFS中,然后编写一个配置单元脚本将csv导入表中。所有脚本都可以在工作流中转储到Oozie以实现自动化。是这样吗?有更好的办法吗?有人能给我指一下正确的路线吗 我一直采用的方法是使用sql文件和cron作业。sql包括将数据加载到表中,然后根据需要对其执行一些其他操作 该文件包含与您将输入到配置单元CLI中相同的sql。您

我真的很业余。我正在尝试将csv数据自动导入到驻留在Hadoop中的表中。csv文件将驻留在服务器中。我一直在谷歌上搜索,似乎我必须编写一个shell脚本将csv文件上传到HDFS中,然后编写一个配置单元脚本将csv导入表中。所有脚本都可以在工作流中转储到Oozie以实现自动化。是这样吗?有更好的办法吗?有人能给我指一下正确的路线吗

我一直采用的方法是使用sql文件和cron作业。sql包括将数据加载到表中,然后根据需要对其执行一些其他操作

该文件包含与您将输入到配置单元CLI中相同的sql。您可以使用“hive-f”从命令行(或作为cron作业)运行它


希望有帮助。

要将文件放入hdfs:

hadoop fs -put /here/the/local/file.csv /here/the/destination/in/HDFS
要基于csv创建配置单元表,请执行以下操作:

CREATE TABLE yourTable(Field1 INT, Field2 String)
ROW FORMAT DELIMITED FIELDS TERMINATED BY 'youSeparator';
创建表后:

LOAD DATA INPATH 'HDFS/Path/To:YourFile.csv' INTO TABLE yourTable;
是的,你可以用Oozie工作流或者Java来实现