在脚本外部编写时,具有用户定义功能的 pyspark 地图不起作用

Posted

技术标签:

【中文标题】在脚本外部编写时,具有用户定义功能的 pyspark 地图不起作用【英文标题】:pyspark map with user defined function not working when written outside script 【发布时间】:2017-08-28 09:12:45 【问题描述】:

我正在使用带有 pyspark 的 python 2.7,

我使用了一个用户定义的函数,当我这样使用它时效果很好

def func(x):
    pass 

RDD.map(lambda x:func(x))

但是当我在另一个名为 utils 的脚本中创建函数并使用

from utils import func as func 
RDD.map(lambda x:func(x))

我收到一个错误

ImportError: 没有名为 utils 的模块

如何从用户定义的模块中导入函数并将其与 RDD 映射一起使用?

谢谢

【问题讨论】:

【参考方案1】:

在命令行中:

spark-submit --py-files utils.py ...

或者在脚本中:

sc.addPyFile('file:///path/to/utils.py')

【讨论】:

请不要忘记添加一些文字来解释您的答案 - 为什么它有效以及它如何解决原始问题 如何使用 spark 上下文将其集成到 python 脚本中? SparkContext().getConf().set('pyfiles',['file:///path/to/utils.py'])

以上是关于在脚本外部编写时,具有用户定义功能的 pyspark 地图不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何编写一个简单的shell脚本.

在 IntelliJ 中运行 ImageJ 脚本

shell脚本--初始CGI

Hive UDF开发

为自己的软件增加脚本编写功能并自定义API

为自己的软件增加脚本编写功能并自定义API