【问题标题】:Cannot find a library when running PySpark job with external jar files使用外部 jar 文件运行 PySpark 作业时找不到库
【发布时间】:2018-07-23 13:21:48
【问题描述】:

我有 PySpark 工作 InitiatorSpark.py,代码如下:

from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("Test") \
    .getOrCreate()

lines = (spark
             .readStream
             .format("org.apache.bahir.sql.streaming.mqtt.MQTTStreamSourceProvider")
             .option("topic","my_topic")
             .load("tcp://{}".format("127.0.0.1:1883")))

我运行如下:

spark-submit --jars lib/spark-sql-streaming-mqtt_2.11-2.2.1.jar InitiatorSpark.py

Spark 启动,但随后在 .load("tcp://{}".format("127.0.0.1:1883"))) 行失败并显示以下消息:

Caused by: java.lang.ClassNotFoundException: org.eclipse.paho.client.mqttv3.MqttClientPersistence

虽然我提供了正确的 JAR 文件,但似乎找不到类 MqttClientPersistence。在lib里面我有两个文件:

spark-streaming-mqtt_2.11-2.2.1-sources.jar 
spark-streaming-mqtt_2.11-2.2.1.jar

我的设置有什么问题?

【问题讨论】:

    标签: python apache-spark pyspark mqtt


    【解决方案1】:

    我能够通过将 3 个 JAR 文件添加到 spark-submit 命令来运行此代码:

    spark-submit --jars lib/spark-streaming-mqtt_2.11-2.2.1.jar,lib/spark-sql-streaming-mqtt_2.11-2.2.1.jar,lib/org.eclipse.paho.client.mqttv3-1.2.0.jar InitiatorSpark.py
    

    【讨论】:

      猜你喜欢
      • 2012-04-14
      • 2017-01-30
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      相关资源
      最近更新 更多