gpt4 book ai didi

apache-spark - 使用 Spark 访问 s3a 时出现 403 错误

转载 作者:行者123 更新时间:2023-12-02 18:14:42 28 4
gpt4 key购买 nike

问题:

能够使用 AWS CLI 以及 boto 3 成功下载文件。
但是,在使用 Hadoop/Spark 的 S3A 连接器时,收到以下错误:

py4j.protocol.Py4JJavaError: An error occurred while calling o24.parquet.
: com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 403, AWS Service: Amazon S3, AWS Request ID: BCFFD14CB2939D68, AWS Error Code: null, AWS Error Message: Forbidden, S3 Extended Request ID: MfT8J6ZPlJccgHBXX+tX1fpX47V7dWCP3Dq+W9+IBUfUhsD4Nx+DcyqsbgbKsPn8NZzjc2U

配置:
在我的本地机器上运行这个
  • Spark 版本 2.4.4
  • Hadoop 2.7 版

  • jar 补充道:
  • hadoop-aws-2.7.3.jar
  • aws-java-sdk-1.7.4.jar

  • Hadoop 配置:
    hadoop_conf.set("fs.s3a.access.key", access_key)
    hadoop_conf.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
    hadoop_conf.set("fs.s3a.secret.key", secret_key)
    hadoop_conf.set("fs.s3a.aws.credentials.provider","org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider")
    hadoop_conf.set("fs.s3a.session.token", session_key)
    hadoop_conf.set("fs.s3a.endpoint", "s3-us-west-2.amazonaws.com") # yes, I am using central eu server.
    hadoop_conf.set("com.amazonaws.services.s3.enableV4", "true")

    读取文件的代码:
    from pyspark import SparkConf, SparkContext, SQLContext
    sc = SparkContext.getOrCreate()
    hadoop_conf=sc._jsc.hadoopConfiguration()
    sqlContext = SQLContext(sc)
    df = sqlContext.read.parquet(path)
    print(df.head())

    最佳答案

    设置 AWS 凭证提供程序以配置凭证:

    hadoopConf.set("fs.s3a.aws.credentials.provider", "com.amazonaws.auth.profile.ProfileCredentialsProvider")

    关于apache-spark - 使用 Spark 访问 s3a 时出现 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60489928/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com