Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 有没有办法查一查;路径或文件存在";猪字_Hadoop_Apache Pig - Fatal编程技术网

Hadoop 有没有办法查一查;路径或文件存在";猪字

Hadoop 有没有办法查一查;路径或文件存在";猪字,hadoop,apache-pig,Hadoop,Apache Pig,在我的hadoop环境中,动态创建输出目录。因此,我想动态读取输出目录,比如,如果存在路径或文件,那么执行此操作,否则在else中执行此操作。那么,是否有任何方法可以检查pig脚本中的“路径或文件是否存在?”?是和否。您可以使用Hadoop Shell命令检查路径是否存在,但不能基于此更改pig脚本流 我用Pig来做你在问题中描述的你想做的事情 在Pig中,您可以运行shell命令来测试路径是否存在,如果存在,则返回该路径,否则返回其他始终可用的空数据路径。然后依靠清管器的参数替换 例如: %

在我的hadoop环境中,动态创建输出目录。因此,我想动态读取输出目录,比如,如果存在路径或文件,那么执行此操作,否则在else中执行此操作。那么,是否有任何方法可以检查pig脚本中的“路径或文件是否存在?”?

是和否。您可以使用Hadoop Shell命令检查路径是否存在,但不能基于此更改pig脚本流


我用Pig来做你在问题中描述的你想做的事情

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

例如:

%declare emptyPath'/user/me/emptypata.csv'
%声明requestedPath'/user/me/realData.csv'
%声明实际路径'sh-c“hdfs dfs-test-e'$requestedPath';如果[\\$?-eq 0];则回显'$requestedPath';否则回显'$emptyPath';fi“`

a=使用PigStorage(',')作为(行:chararray)加载“$actualPath”您可以从内部清管器执行shell命令。我会在目录上做ls,并检查它是否存在于shell脚本中。嘿,Gaurav thnx的回复,我尝试下面的代码与sh和bash在pig脚本中,但它不工作。sh-mv/user/liddev/desh/locationid/data/cdc/BUILDINGMATCHAUTOMATIC/2014-09-05_011203/part-m-*/user/liddev/desh/locationid/data/cdc/BUILDINGMATCHAUTOMATIC/2014-09-05_011203/PIVID_LID_BID2.txt bash-mv/user/liddev/desh/locationid/data/cdc/BUILDINGMATCHAUTOMATCHAUTOMATCH/2014-09-05匏/part-m-*/user/liddev/desh/locationid/data/cdc/BUILDINGMATCHAUTOMATIC/2014-09-05_011203/PIVID_LID_BID2.txtShell脚本通常在清管器内通过用记号围绕shell命令执行。e、 g.我有一个变量初始化,如下所示:%default昨日
date--date=“昨日-1天”+%Y%m%d”
我建议您创建一个变量,该变量基于使用特定值初始化的路径的存在或不存在(例如0表示路径不存在,1表示路径存在)然后使用pig脚本中变量的值谢谢Mikko回复,我在Oozie工作流中找到了问题的解决方案。再次感谢你