我正在使用 带有 Pyspark 的 Jupyter 笔记本和 以下 docker 图像: Jupyter all-spark-notebook
现在我想编写一个 pyspark 流式应用程序,它使用来自 Kafka 的消息。在 Spark-Kafka 集成指南 中,他们描述了如何使用 spark-submit 部署这样的应用程序(它需要链接一个外部 jar - 解释在 3.部署 中)。但是因为我使用的是 Jupyter notebook,所以我从来没有真正运行过 spark-submit
命令,我假设如果我按下执行它会在后面运行。
在 spark-submit
命令中,您可以指定一些参数,其中之一是 -jars
,但我不清楚如何从笔记本(或通过环境变量从外部设置此参数?)。我假设我可以通过 SparkConf
或 SparkContext
对象动态链接这个外部 jar。有没有人有过如何从笔记本正确执行链接的经验?
原文由 DDW 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经设法让它在从 all-spark 容器运行的 jupyter notebook 中运行。
我在 jupyterhub 中启动一个 python3 笔记本并覆盖 PYSPARK_SUBMIT_ARGS 标志,如下所示。 Kafka消费者库是从maven仓库下载的,放在我家目录/home/jovyan:
注意: 不要忘记环境变量中的pyspark-shell!
扩展: 如果你想包含来自 spark-packages 的代码,你可以使用 –packages 标志。可以在 此处 找到有关如何在 all-spark-notebook 中执行此操作的示例