嘿我需要使用HDFS
将本地目录中的所有文件复制到pig
。
在pig脚本中,我在源路径中使用带有通配符的copyFromLocal
命令
即copyFromLocal / home / hive / Sample / * / user
它说源路径不存在。
当我使用copyFromLocal /home/hive/Sample/ /user
时,它会在HDFS中创建一个名为' Sample'的另一个目录,这是我不需要的。
但是当我包含文件名,即/home/hive/Sample/sample_1.txt
时,它就可以了。
我不需要单个文件。我需要复制目录中的所有文件而不在HDFS中创建目录。
PS:我也试过* .txt,?,?。txt 没有通配符。
答案 0 :(得分:0)
Pig copyFromLocal / toLocal命令仅适用于文件或目录。它永远不会采用一系列文件(或)通配符。更多,猪专注于处理来自/到HDFS的数据。据我所知,你甚至无法循环ls.cause在目录中的文件,因为它列出了HDFS中的文件。所以,对于这种情况,我建议你编写一个shell脚本/动作(即fs命令)来将文件从本地复制到HDFS。
点击以下链接获取信息: http://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#copyFromLocal