我關注了這篇博客文章,它建議使用:
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()
我用它來配置 PySpark,它可以直接從我的本地機器上從 S3 獲取資料。
但是我發現了這個關于使用的問題s3a,s3n或者最近s3的答案之一說建議不要使用。此外,我還發現AWS 的本指南不鼓勵使用:s3as3a
以前,Amazon EMR 使用 s3n 和 s3a 檔案系統。雖然兩者仍然有效,但我們建議您使用 s3 URI 方案以獲得最佳性能、安全性和可靠性。
所以我決定嘗試尋找如何實作s3與 PySpark 和 Hadoop 的使用,但我發現Hadoop 的這個指南提到它只支持s3a官方:
S3 還有其他 Hadoop 連接器。只有 S3A 由 Hadoop 專案本身主動維護。
博客文章中提到的方法有效,但它是這種情況的最佳選擇嗎?有沒有其他方法來配置這個?
從本地機器訪問 S3 的最佳方法是什么?
uj5u.com熱心網友回復:
關于 EMR 的 AWS 檔案。您的本地系統不是 EMR,因此請完全忽略它。
使用 ASF 開發的 s3a 連接器并查看hadoop 檔案以了解如何使用它,而不是來自過期堆疊溢位帖子的示例。{即,如果檔案說的內容與 4 歲的帖子所說的相矛盾,請使用檔案。甚至是來源)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424065.html
標籤:亚马逊网络服务 阿帕奇火花 亚马逊-s3 Hadoop pyspark
