Pyspark Spark结构化流媒体-无法解析“;卡夫卡“;格式(Cloudera群集上的Jupyter笔记本)
我正试图在我的Cloudera集群上使用Juputer notebook(PySpark内核)运行一个样本Spark结构化流媒体应用程序,但我似乎无法让它使用所需的软件包Pyspark Spark结构化流媒体-无法解析“;卡夫卡“;格式(Cloudera群集上的Jupyter笔记本),pyspark,apache-kafka,jupyter-notebook,cloudera,spark-structured-streaming,Pyspark,Apache Kafka,Jupyter Notebook,Cloudera,Spark Structured Streaming,我正试图在我的Cloudera集群上使用Juputer notebook(PySpark内核)运行一个样本Spark结构化流媒体应用程序,但我似乎无法让它使用所需的软件包 dsraw = spark \ .readStream \ .format("kafka") \ .option("kafka.bootstrap.servers", "kafkaBroker:9092") \ .option("subscribe", "test") \ .option("starting
dsraw = spark \
.readStream \
.format("kafka") \
.option("kafka.bootstrap.servers", "kafkaBroker:9092") \
.option("subscribe", "test") \
.option("startingOffsets", "earliest") \
.load()
我得到的错误是:
Py4JJavaError: An error occurred while calling o113.load.
: org.apache.spark.sql.AnalysisException: Failed to find data source: kafka. Please deploy the application as per the deployment section of "Structured Streaming + Kafka Integration Guide".;
我的设置:
- Spark版本:“2.4.0.cloudera2”
- Scala版本:2.11.12
- 卡夫卡版本:2.1.0-Kafka-4.0.0
"PYSPARK_SUBMIT_ARGS": " --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0 --master yarn --deploy-mode client pyspark-shell"
2) 在代码中传递环境变量
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0 pyspark-shell'
当我从命令行运行pyspark时,它似乎可以工作,但在尝试查询流时,我面临不同的问题(无论如何,我需要从Jupyter使其工作)
我很熟悉的,但在我的情况下,这似乎是不够的
我还尝试使用不同版本的包,还尝试将其作为jar传递。你知道什么地方可能出了问题吗?是Cloudera发行版还是Jupyter特定的发行版
pyspark --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0