在spark的aws emr集群上处理google存储中的数据

6tqwzwtp  于 2021-05-24  发布在  Spark
关注(0)|答案(1)|浏览(543)

如何在spark的aws emr集群上处理存储在google存储中的数据?
假设我有一些数据存储在 gs://my-buckey/my-parquet-data ,如何从emr集群中读取数据,而不必事先将数据复制到s3或下载到本地存储?

p3rjfoxz

p3rjfoxz1#

首先获取google hmac凭据,并访问要处理的gs bucket/对象
然后使用s3a文件系统(已经与aws hadoop发行版捆绑在一起)和以下hadoop配置值:

val conf = spark.sparkContext.hadoopConfiguration
conf.set("fs.s3a.access.key", "<hmac key>")
conf.set("fs.s3a.secret.key", "<hmac secret>")
conf.setBoolean("fs.s3a.path.style.access", true)
conf.set("fs.s3a.endpoint", "storage.googleapis.com")
conf.setInt("fs.s3a.list.version", 1)

然后你可以使用 s3a 路径如下:

spark.read.parquet("s3a://<google storage bucket name>/<path>)

相关问题