pig中python的使用

Writing Python UDFs

 

1.write python script:

@outputSchema("word:chararray")
def helloworld():  
  return 'Hello, World'

@outputSchema("word:chararray,num:long")
def complex(word):
  return str(word),len(word)

@outputSchemaFunction("squareSchema")
def square(num):
  return ((num)*(num))

@schemaFunction("squareSchema")
def squareSchema(input):
  return input

# No decorator - bytearray
def concat(str):
  return str+str
 

 

2.register python script as myFcuns:

register './Desktop/test.py' using jython as myFuncs;

 

3.use the python script:

python_records =foreach records generate myFuncs.helloworld(),myFuncs.square(4),myFuncs.complex('data');

 

4.check data:

dump python_records;

 

5.analyse:

outputSchema – 定义一种 pig 能解析的自定义函数模式

outputFunctionSchema – 定义可传入参数的函数,根据用户传入的参数觉得返回的值,这个需要函数能接受泛型参数

schemaFunction – 这种函数不会在 pig 中注册

 

6. 实际应用,使用 square 函数:

python_records =foreach records generate name,myFuncs.square(age),sex;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值