【发布时间】:2015-08-27 18:36:00
【问题描述】:
为 Hadoop/Pig 编写一个 Python UDF,在进行本地框 UDF 测试时,需要使用一些 Python 库,例如我通过 pip 在本地安装的“请求”。想知道如何在 Hadoop 集群上部署 pip 包,以便无论我的 Python UDF 在哪个节点上运行,它都会自动消费?
【问题讨论】:
-
这个问题与stackoverflow.com/questions/6811549/… 很接近,stackoverflow.com/questions/6811549/… 提供了通过作业分发包的方法,但是常识要求首先在所有节点上统一安装 Python,包括常用的包。
-
@TrisNefzger,感谢您的分享,并想尝试 zipimport 选项。想澄清一下我的用法是正确的,比如我要导入包请求,pypi.python.org/pypi/requests#downloads,我要不要下载requests-2.7.0.tar.gz源码包并zipimport zip文件“requests-2.7.0.tar” .gz”?谢谢。
-
通过查看docs.python.org/2/library/zipimport.html 和我的 sys.path,其中包括 'C:\\Anaconda3\\envs\\python2\\python27.zip' 我认为您需要一个 zip 文件而不是 tar。 gz 文件。建议先试用 zipimport 以确定它的工作原理。
-
@TrisNefzger,感谢您提供的信息。想知道 zip 文件是什么?例如,在我的请求包的情况下,请求的官方网站不提供 zip 的下载选项。 :)
标签: python hadoop apache-pig udf