Gus*_*avo 5 hadoop amazon-s3 amazon-web-services apache-spark pyspark
我遵循了这篇博文,建议使用:
from pyspark import SparkConf
from pyspark.sql import SparkSession
conf = SparkConf()
conf.set('spark.jars.packages', 'org.apache.hadoop:hadoop-aws:3.2.0')
conf.set('spark.hadoop.fs.s3a.aws.credentials.provider', 'org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider')
conf.set('spark.hadoop.fs.s3a.access.key', <access_key>)
conf.set('spark.hadoop.fs.s3a.secret.key', <secret_key>)
conf.set('spark.hadoop.fs.s3a.session.token', <token>)
spark = SparkSession.builder.config(conf=conf).getOrCreate()
Run Code Online (Sandbox Code Playgroud)
我用它来配置 PySpark,它可以直接从我的本地计算机从 S3 获取数据。
然而,我发现这个关于使用, or 的问题,最近的答案之一说建议不要使用。我还发现AWS 的本指南也不鼓励使用:s3as3ns3s3as3a
以前,Amazon EMR 使用 s3n 和 s3a 文件系统。虽然两者仍然有效,但我们建议您使用 s3 URI 方案以获得最佳性能、安全性和可靠性。
所以我决定尝试寻找如何实现s3PySpark和Hadoop的使用,但我发现Hadoop的这篇指南提到它只s3a官方支持:
还有其他连接到 S3 的 Hadoop 连接器。只有 S3A 是由 Hadoop 项目本身积极维护的。
博客文章中提到的方法可行,但它是这种情况的最佳选择吗?还有其他方法可以配置这个吗?
从本地计算机访问 S3 的最佳方法是什么?
有关 EMR 的 AWS 文档。您的本地系统不是 EMR,因此完全忽略它。
使用 ASF 开发的 s3a 连接器并查看hadoop 文档以了解如何使用它,优先于过时的堆栈溢出帖子中的示例。{即,如果文档所说的内容与 4 岁帖子所说的内容相矛盾,请遵循文档。甚至是来源)
| 归档时间: |
|
| 查看次数: |
2883 次 |
| 最近记录: |