【问题标题】:Pyspark S3 NoClassDefFoundError: com/amazonaws/AmazonClientExceptionPyspark S3 NoClassDefFoundError:com/amazonaws/AmazonClientException
【发布时间】:2023-03-03 07:02:24
【问题描述】:

我正在尝试从我正在运行的小型 Spark 集群中读取 S3 文件。我安装了以下罐子:

"aws-java-sdk-bundle-1.11.975.jar"
"hadoop-aws-3.2.1.jar"

我正在使用以下代码:

from pyspark.context import SparkContext
from pyspark.sql import SparkSession, SQLContext
import os

# initialise Spark session
spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.jars", "aws-java-sdk-bundle-1.11.975.jar") \
    .config("spark.jars", "hadoop-aws-3.2.1.jar") \
    .getOrCreate()

os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.amazonaws:aws-java-sdk-bundle-1.11.975,org.apache.hadoop:hadoop-aws-3.2.1 pyspark-shell'

fp = "s3a://filepath/objects/"
sc = spark.sparkContext
sqlContext = SQLContext(sc)
df = sqlContext.read.parquet(fp)

但是,当我运行它时,我收到错误 An error occurred while calling o62.parquet. : java.lang.NoClassDefFoundError: com/amazonaws/AmazonClientException

如果我将fp 更新为s3://...,则会收到错误No FileSystem for scheme "s3"

我在这里尝试了一些解决方案,但到目前为止似乎没有任何效果。

【问题讨论】:

    标签: java amazon-web-services apache-spark amazon-s3 pyspark


    【解决方案1】:

    Hadoop 3.2.1 是使用 AWS SDK 1.11.375 构建的;可能是那里的版本问题,或者只是 aws SDK JAR 没有进入类路径

    我将从 Hadoop 文档中的“s3a 故障排除”页面开始

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-10
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多