You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Notebook中配置PySpark的Kafka依赖

在Jupyter Notebook中配置PySpark Kafka依赖的解决方案

错误原因分析

你遇到的Failed to find data source: kafka错误,核心原因是Spark版本与Kafka连接器版本不匹配:你使用的是Spark 3.4,但指定的连接器版本是3.3.0,两者版本不一致会导致兼容性问题,无法加载Kafka数据源。

三种Jupyter内的解决方法

方法1:修正SparkSession的依赖包版本

直接在SparkSession构建时指定与Spark 3.4完全匹配的Kafka连接器版本:

from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("KafkaStreamingExample") \
    .config('spark.jars.packages', 'org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0') \
    .getOrCreate()

stream_df = spark.readStream\
    .format("kafka") \
    .option("kafka.bootstrap.servers", "localhost:9092") \
    .option("subscribe", "stocky") \
    .load()
  • 注意:_2.12是Scala版本后缀,Spark 3.4默认使用Scala 2.12,不要修改;版本号必须和你的Spark版本(3.4)完全一致。
  • 首次运行会自动下载依赖包,需要确保网络通畅。

方法2:手动指定本地JAR包(适用于网络环境差的情况)

  1. 下载对应Spark 3.4版本的JAR包:
    • spark-sql-kafka-0-10_2.12-3.4.0.jar
    • kafka-clients-3.3.2.jar(Spark 3.4匹配的Kafka客户端版本)
    • spark-token-provider-kafka-0-10_2.12-3.4.0.jar
  2. 将这些JAR包放到本地目录(比如C:\spark_jars\)
  3. 在SparkSession中配置本地JAR路径:
spark = SparkSession \
    .builder \
    .appName("KafkaStreamingExample") \
    .config('spark.jars', 'C:\\spark_jars\\spark-sql-kafka-0-10_2.12-3.4.0.jar,C:\\spark_jars\\kafka-clients-3.3.2.jar,C:\\spark_jars\\spark-token-provider-kafka-0-10_2.12-3.4.0.jar') \
    .getOrCreate()
  • Windows系统路径要用双反斜杠\\转义,多个JAR包用逗号分隔。

方法3:通过环境变量配置PySpark启动参数

在Notebook开头设置PYSPARK_SUBMIT_ARGS环境变量,让PySpark启动时自动加载依赖:

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.0 pyspark-shell'

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("KafkaStreamingExample").getOrCreate()

# 后续读取Kafka流的代码不变
stream_df = spark.readStream\
    .format("kafka") \
    .option("kafka.bootstrap.servers", "localhost:9092") \
    .option("subscribe", "stocky") \
    .load()
  • 这种方式相当于在启动PySpark内核时自动执行spark-submit的--packages参数,适合全局加载依赖的场景。

额外注意事项

  • 若使用虚拟环境,需确保Jupyter内核对应安装PySpark的虚拟环境,避免依赖加载失败。
  • Windows系统下若遇权限问题,需确保Jupyter有读取JAR包目录的权限。

内容的提问来源于stack exchange,提问作者rarpal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:18:20