有没有办法检查猪脚本中的“路径或文件存在”

时间:2014-09-04 07:03:28

标签: hadoop apache-pig

在我的hadoop环境中,输出目录是动态创建的。因此,我想动态地读取输出目录,如果存在路径或文件,请执行此操作,否则执行此操作。那么有没有办法检查"路径或文件存在"在猪脚本。??

2 个答案:

答案 0 :(得分:2)

在Pig中,您可以运行shell命令来测试路径是否存在,如果是,则返回该路径,否则返回一些始终可用的其他空数据路径。然后依靠Pig的参数替换。

例如:



%declare emptyPath '/user/me/emptyData.csv'
%declare requestedPath '/user/me/realData.csv'
%declare actualPath `sh -c "hdfs dfs -test -e '$requestedPath '; if [ \\$? -eq 0 ]; then echo '$requestedPath '; else echo '$emptyPath '; fi"`

a = load '$actualPath' using PigStorage(',') as (line:chararray);




答案 1 :(得分:0)

是和否。您可以检查使用Hadoop Shell命令(如test)来检查路径是否存在,但您无法根据此更改Pig脚本流。

我已经和猪一起使用Python做了你想要在你的问题中做的事情。