带有jython/pig的python udf版本

yizd12fk  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(311)

当我用pig编写python自定义项时,我们如何知道它使用的是哪个版本的python?是否可以使用特定版本的python?
具体来说,我的问题是在我的udf中,我需要在数学模块math.erf()中使用一个函数,这个函数是python版本2.7中新引入的。我的机器上安装了python 2.7,独立的python程序运行得很好,但当我在pig中以python udf运行它时,我得到了以下结果:
attributeerror:类型对象“org.python.modules.math”没有属性“erf”
我猜jython使用的是2.7之前版本的python?
谢谢你的帮助!

fruv7luv

fruv7luv1#

要获取正在使用的版本,可以执行以下操作:
我的自定义项.py


# !/usr/bin/python

import sys

@outputSchema('bar: chararray')
def my_func(foo):
    print sys.version
    return foo

如果在本地运行脚本,那么版本将直接打印到stdout。查看 sys.version 当你远程运行它时,你必须检查作业跟踪器上的日志。
然而,关于jython在2.7之前的说法是对的。目前jython的稳定版本是2.5.3,所以这就是pig使用的版本。有一个2.7的测试版。

相关问题