如何从 Pig 中的 Python UDF 打印?
Posted
技术标签:
【中文标题】如何从 Pig 中的 Python UDF 打印?【英文标题】:How do I print from a Python UDF in Pig? 【发布时间】:2012-07-24 21:55:32 【问题描述】:我有一个用 Python 编写的用户定义函数,我从 Pig 脚本中调用它。出于调试目的,我想打印出我的一些变量,但我的打印语句似乎没有任何效果。如何在 Pig 中从 Python UDF 打印?
【问题讨论】:
使用 apache commons log 工具而不是 stdout?import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; # see also pigLogger
【参考方案1】:
一般来说,如果您只是按照下面的示例打印(这对我有用),它将转到执行 UDF 的任务的日志。这里复杂的部分是通过作业跟踪器找到相关的 map/reduce 任务(在 pig 11 中,它更简单,因为 pig 将每个阶段写入标准输出)
@outputSchema("schema:chararray")
def convertBagToStr(acctBag):
#print len(acctBag)
#print acctBag
return "_".join([str(i[0]) for i in sorted(acctBag)])
【讨论】:
以上是关于如何从 Pig 中的 Python UDF 打印?的主要内容,如果未能解决你的问题,请参考以下文章
在 Pig 中使用 Python UDF 时,如何让 Hadoop 查找导入的 Python 模块?
Apache Pig - 如何维护一个分布式查找表以供我的 python UDF 访问?