如何从 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

在 Pig 中使用 Python UDF 时,如何让 Hadoop 查找导入的 Python 模块?

Apache Pig - 如何维护一个分布式查找表以供我的 python UDF 访问?

如何在 Amazon EMR 上的 pig 中使用 Python 流 UDF

通过python UDF将文本文件导入pig

Pig into Cassandra - 使用 python UDF 和 CqlStorage 传递列表对象