当我用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?
谢谢你的帮助!
1条答案
按热度按时间fruv7luv1#
要获取正在使用的版本,可以执行以下操作:
我的自定义项.py
如果在本地运行脚本,那么版本将直接打印到stdout。查看
sys.version
当你远程运行它时,你必须检查作业跟踪器上的日志。然而,关于jython在2.7之前的说法是对的。目前jython的稳定版本是2.5.3,所以这就是pig使用的版本。有一个2.7的测试版。