我想导入一个包含一些模块的.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())
Run Code Online (Sandbox Code Playgroud)
在代码下的某处,我正在使用它来转换数据框中的列之一:
df = df.withColumn("newcol", myudf(df["oldcol"]))
Run Code Online (Sandbox Code Playgroud)
那么我正在尝试查看它是否将其转换为我的使用:
df.head()
Run Code Online (Sandbox Code Playgroud)
它失败,并显示错误“没有名为myutil的模块”。
我能够调出ipython中的功能。莫名其妙的pyspark引擎看不到模块。知道如何确保pyspark引擎拾取模块吗?
您必须使用设置工具构建软件包的egg文件,并将egg文件添加到应用程序中,如下所示
sc.addFile('<path of the egg file>')
Run Code Online (Sandbox Code Playgroud)
这sc是spark上下文变量。
| 归档时间: |
|
| 查看次数: |
1625 次 |
| 最近记录: |