Pig Control Structures控制结构 - 删除空文件输出

PigLatin中没有类似于if-else的控制结构。如果需要完成类似的控制结构,则需要使用embedded pig来完成。例如我们可以在Python中嵌入Pig Latin语句和Pig命令(请确保Jython jar包含在类路径中)。
以下例子为判断pig作业是否有输出结果,若无输出,则删除hdfs对应输出文件夹下的空文件:

#/usr/bin/python3
#sample_pig.py
# explicitly import Pig class 
from org.apache.pig.scripting import Pig
# COMPILE: compile method returns a Pig object that represents the pipeline
P = Pig.compileFromFile("load_data_to_hive.pig")

path = '/tmp'
time = '2019-02-20 12:00:00'
#BIND and RUN
pig_result = P.bind({'time':time, 'path':path}).runSingle()

if not pig_result.isSuccessful():
	raise 'Pig job failed'
final_res = pig_result.result('OUTPUT_RES')
if final_res.getNumberRecords() > 1:
	print('No records generated, remove empty output dir.')
	Pig.fs('rmr ' + final_res.getLocation())
	
$ pig -embeded jython sample_pig.py

更多解释和例子请参见官方文档

转载于:https://www.cnblogs.com/lestatzhang/p/10611347.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值