【问题标题】:Py4JJavaError: java.lang.ClassNotFoundException: org.postgresql.Driver while using pyspark in a conda environmentPy4JJavaError: java.lang.ClassNotFoundException: org.postgresql.Driver 在 conda 环境中使用 pyspark 时
【发布时间】:2023-01-17 09:59:49
【问题描述】:

我正在尝试将 spark 数据帧加载到 postgresql 表中,我已将最新的 postgresql jdbc 驱动程序添加到 spark.jars 中,但我仍然收到错误

Py4JJavaError: An error occurred while calling o80.save.
: java.lang.ClassNotFoundException: org.postgresql.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:387)

这是我的代码:

spark = SparkSession \
        .builder \
        .appName("Python Spark Purple Air") \
        .master("local") \
        .config("spark.jars", "/<location-jar-file>/postgresql-42.5.1.jar") \
        .getOrCreate()
list_df.select("api_version","data_time_stamp","sensor", "time_stamp").write.mode("overwrite").format("jdbc")\
    .option("url", "jdbc:postgresql://localhost:5432/purpleair_data") \
    .option("driver", "org.postgresql.Driver").option("dbtable", "purpleair") \
    .option("user", "postgres").option("password", "xxx").save()

我确实找到了多个相关的堆栈溢出链接,但是当我将 jar 文件配置为 spark.jars 时,所有这些链接都得到了解决,这就是我所做的,但它似乎仍然无法正常工作。我在 conda 环境中安装了 pyspark,并且在 jupyter notebook 中运行这段代码。任何形式的帮助或解决方法都会真正帮助我。

【问题讨论】:

    标签: java postgresql pyspark driver


    【解决方案1】:

    我用 spark.jars.packages (org.postgresql:postgresql:42.5.1):

    与火花(pyspark):

    self.spark_jars_packages = "com.amazonaws:aws-java-sdk:1.12.246,org.apache.hadoop:hadoop-aws:3.2.3,io.delta:delta-core_2.12:2.0.0,org.postgresql:postgresql:42.5.1"
    
    self.spark = (SparkSession.builder.master("local[*]")
    appName("test-spark")
    **.config("spark.jars.packages", self.spark_jars_packages)**
    

    带增量:

    self.packages = [
                "com.amazonaws:aws-java-sdk:1.12.246,org.apache.hadoop:hadoop-aws:3.3.1,io.delta:delta-core_2.12:2.2.0,org.postgresql:postgresql:42.5.1"]
    
        self.spark = configure_spark_with_delta_pip(
            self.builder, extra_packages=self.packages).getOrCreate()
    

    【讨论】:

      猜你喜欢
      • 2022-08-19
      • 2021-10-01
      • 1970-01-01
      • 2017-08-02
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      相关资源
      最近更新 更多