在Amazon EMR上为Pig UDF加载外部python模块

时间:2012-06-04 17:15:13

标签: python amazon apache-pig emr

我创建了一个python UDF,将日期时间转换为不同的时区。该脚本使用的pytz不附带python(或jython)。我尝试了几件事:

  1. 引导PIG安装它自己的jython并包含pytz 那个jython安装。我不能让PIG使用新安装的 jython,它一直在回归亚马逊的jython。
  2. 将PYTHONPATH设置为已安装新模块的本地目录
  3. 将HADOOP_CLASSPATH / PIG_CLASSPATH设置为新安装的jython
  4. 当我尝试加载UDF脚本时,每个都以“ImportError:没有名为pytz的模块”结束。如果我删除pytz,脚本加载正常,所以它绝对是给它带来问题的外部模块。

    编辑:最初将此作为评论,但我认为我只是将其作为编辑:

    我已经尝试了所有我知道的方法来让PIG识别另一个jython jar。这没效果。亚马逊的jython在这里:/home/hadoop/.versions/pig-0.9.2/lib/pig/jython.jar,正在识别这个sys.path:/ home / hadoop / lib / Lib。我无法弄清楚如何针对这个jar构建外部库。

1 个答案:

答案 0 :(得分:0)

你可以手动破解你的jython脚本中的sys.path吗?