如何在 Spark 中调用 python 脚本?

How to call python script in Spark?

我有一个计算图表的metrics.py

我可以在终端命令行中调用它(python ./metrics.py -i [input] [output])。

我想在 Spark 中编写一个函数。它将 metrics.py 脚本调用到提供文件路径上的 运行 并收集 metrics.py 打印出的值。

我该怎么做?

为了 运行 metrics.py,您实际上将其发送到 运行 您的 Spark 作业的所有执行程序节点。

为此,您可以通过 SparkContext 传递它 -

sc = SparkContext(conf=conf, pyFiles=['path_to_metrics.py'])

或稍后使用 Spark Context 的 addPyFile 方法传递它 -

sc.addPyFile('path_to_metrics.py')

在任何一种情况下,之后,不要忘记导入 metrics.py 然后只调用需要的函数来提供所需的输出。

import metrics
metrics.relevant_function()

还要确保在所有执行程序节点上安装了 metrics.py 中导入的所有 python 库。否则,在提交作业时使用 --py-files 和 --jars 句柄处理它们。