Hive UDF的源Python虚拟环境

时间:2018-10-22 18:50:01

标签: python hive hiveql

我正在使用Python虚拟环境加载模块,这些模块在我们的集群上不可用,无法在Hive UDF中使用。我无法获取venv,因此在外壳程序脚本中调用Python UDF时,脚本错误是因为找不到模块。

从shell脚本调用ls时,venv出现在列表中。

DELETE FILE /temp/venv;
ADD FILE /temp/venv;
DELETE FILE udf.sh;
ADD FILE udf.sh;

SOURCE venv/bin/activate;

SELECT TRANSFORM(1)
  USING 'bash udf.sh'
AS (test_result)

文件结果:venv / bin / activate不是文件。

SOURCE ../venv/bin/activate;

失败的结果:ParseException行1:2无法识别“此”“文件”“必须”附近的输入

在shell脚本中,如果我尝试使用:

. venv/bin/activate

它返回退出代码1。

有什么想法吗?

谢谢, 戴夫


已使用以下命令解决:https://stackoverflow.com/a/23069201/10542262

在shell脚本中,而不是这样做:

python [path]/[script].py

您可以从venv调用Python,而不再需要激活venv。

[path/to/venv/]/bin/python [path]/[script].py

0 个答案:

没有答案