嘿,我需要把所有文件从本地目录复制到 HDFS
使用 pig
.
在Pig脚本中,我使用 copyFromLocal
在源路径中使用通配符的命令
i、 e copyfromlocal/home/hive/sample//user
它说源路径不存在。
当我使用 copyFromLocal /home/hive/Sample/ /user
,它在hdfs中生成另一个名为“sample”的目录,我不需要它。
但是当我把文件名也包括进去 /home/hive/Sample/sample_1.txt
它起作用了。
我不需要一个文件。我需要复制目录中的所有文件,而不在hdfs中创建目录。
ps:我也试过.txt,?,?.txt没有通配符工作。
1条答案
按热度按时间of1yzvn41#
pig copyfromlocal/tolocal命令只适用于文件或目录。它永远不会使用一系列通配符。此外,pig专注于处理来自/到hdfs的数据。据我所知,你甚至不能用ls循环目录中的文件。因为它列出hdfs中的文件。因此,对于这个场景,我建议您编写一个shell脚本/操作(即fs命令),将文件从本地复制到hdfs。
请查看以下链接以获取信息:http://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#copyfromlocal