0

我正在尝试通过 Pycharm 使用本地 Pyspark 访问 S3 存储桶中可用的镶木地板文件。我在 Pycharm 中配置了 AWS 工具包,并且在~/.aws/credentials中添加了访问密钥和安全密钥, 但我看到凭证没有被访问。这向我抛出了错误“无法从链中的任何提供商加载 AWS 凭证”

import os
import pyspark
from pyspark.sql import SparkSession


os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.amazonaws:aws-java-sdk-pom:1.10.34,org.apache.hadoop:hadoop-aws:2.7.3 pyspark-shell'

spark = SparkSession.builder\
            .appName('Pyspark').getOrCreate()

my_df = spark.read.\
    parquet("s3a://<parquet_file_location>") --Using s3 gives me no file system error

my_df.printSchema()

是否有任何替代方法可以在本地尝试 Pyspark 并访问 AWS 资源。

此外,我应该能够在镶木地板路径中使用 s3,但这似乎会引发找不到文件系统的错误。是否需要添加任何依赖项或 jar 文件才能在本地运行 Pyspark

4

1 回答 1

0

如果您在 AWS_ env vars 中设置秘密,它们将被拾取,然后与作业一起传播。否则,您可以使用适当的 spark.hadoop.fs.s3a.access.key 和 spark.hadoop.fs.s3a.secret.key 在 spark-defaults.conf 中设置它们。

于 2020-09-09T10:47:36.180 回答