gpt4 book ai didi

python-3.x - 在 jupyter notebook 中将自定义 jars 添加到 pyspark

转载 作者:行者123 更新时间:2023-12-04 00:56:00 24 4
gpt4 key购买 nike

我正在使用 带有 Pyspark 的 Jupyter 笔记本 与以下 docker 图片 : Jupyter all-spark-notebook

现在我想写一个使用来自 Kafka 的消息的 pyspark 流应用程序 .在 Spark-Kafka Integration guide他们描述了如何使用 spark-submit 部署这样的应用程序(它需要链接一个外部 jar - 解释在 3. 部署)。但由于我使用的是 Jupyter 笔记本,我从未真正运行过 spark-submit命令,我假设如果我按下执行它会在后面运行。

spark-submit命令你可以指定一些参数,其中之一是-jars ,但我不清楚如何从笔记本(或外部通过环境变量?)设置此参数。我假设我可以通过 SparkConf 动态链接这个外部 jar。或 SparkContext目的。有没有人体验过如何从笔记本正确执行链接?

最佳答案

我已经设法让它在从全 Spark 容器运行的 jupyter 笔记本中工作。

我在 jupyterhub 中启动一个 python3 笔记本并覆盖 PYSPARK_SUBMIT_ARGS 标志,如下所示。 Kafka 消费者库是从 maven 存储库下载的,并放在我的主目录/home/jovyan 中:

import os
os.environ['PYSPARK_SUBMIT_ARGS'] =
'--jars /home/jovyan/spark-streaming-kafka-assembly_2.10-1.6.1.jar pyspark-shell'

import pyspark
from pyspark.streaming.kafka import KafkaUtils
from pyspark.streaming import StreamingContext

sc = pyspark.SparkContext()
ssc = StreamingContext(sc,1)

broker = "<my_broker_ip>"
directKafkaStream = KafkaUtils.createDirectStream(ssc, ["test1"],
{"metadata.broker.list": broker})
directKafkaStream.pprint()
ssc.start()

注:不要忘记环境变量中的 pyspark-shell !

分机:如果你想包含来自 spark-packages 的代码,你可以使用 --packages 标志。可以在 here 中找到有关如何在 all-spark-notebook 中执行此操作的示例。

关于python-3.x - 在 jupyter notebook 中将自定义 jars 添加到 pyspark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com