相关疑难解决方法(0)

如何在Pig中强制STORE(覆盖)到HDFS?

在开发使用STORE命令的Pig脚本时,我必须删除每次运行的输出目录,否则脚本会停止并提供:

2012-06-19 19:22:49,680 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 6000: Output Location Validation Failed for: 'hdfs://[server]/user/[user]/foo/bar More info to follow:
Output directory hdfs://[server]/user/[user]/foo/bar already exists
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找一个in-Pig解决方案来自动删除目录,如果目录在呼叫时不存在,那么该目录也不会阻塞.

在Pig Latin Reference中我找到了shell命令调用者fs.不幸的是,只要出现任何错误,Pig脚本就会中断.所以我不能用

fs -rmr foo/bar
Run Code Online (Sandbox Code Playgroud)

(即递归删除)因为如果目录不存在它会中断.我想我可以用一会儿

fs -test -e foo/bar
Run Code Online (Sandbox Code Playgroud)

这是一个测试,不应该打破或所以我想.但是,Pig再次将test不存在的目录上的返回代码解释为失败代码并中断.

Pig项目有一个JIRA票据解决了我的问题,并为STORE命令建议了一个可选参数OVERWRITEFORCE_WRITE.无论如何,我正在使用Pig 0.8.1,并且没有这样的参数.

apache-pig hdfs

17
推荐指数
1
解决办法
3万
查看次数

标签 统计

apache-pig ×1

hdfs ×1