【发布时间】:2017-07-21 13:49:41
【问题描述】:
我想导入一个包含一些模块的 .py 文件。我已将文件 init.py 和 util_func.py 保存在此文件夹下:
/usr/local/lib/python3.4/site-packages/myutil
util_func.py 包含我想使用的所有模块。我还需要创建一个 pyspark udf,以便我可以使用它来转换我的数据框。我的代码如下所示:
import myutil
from myutil import util_func
myudf = pyspark.sql.functions.udf(util_func.ConvString, StringType())
在代码的某个地方,我正在使用它来转换我的数据框中的一列:
df = df.withColumn("newcol", myudf(df["oldcol"]))
然后我正在尝试查看它是否将其转换为我的使用:
df.head()
它失败并出现错误“没有名为 myutil 的模块”。
我能够在 ipython 中调出函数。不知何故,pyspark engined 看不到该模块。知道如何确保 pyspark 引擎选择模块吗?
【问题讨论】:
-
你用的是什么python版本?
-
myutil.py 是否存在于当前目录或环境中或环境中的包中?
-
它位于 /usr/local/lib/python3.4/site-packages/ 下。我也在使用 python 3.4