apache-spark - 在Spark中的AWS EMR集群上处理Google Storage中的数据

标签 apache-spark hadoop amazon-s3 google-cloud-storage amazon-emr

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

最佳答案

首先获取有权访问您要处理的GS存储桶/对象的Google HMAC credentials
然后,将S3A文件系统(已与AWS hadoop分发 bundle 在一起)与以下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路径访问Google存储,如下所示:
spark.read.parquet("s3a://<google storage bucket name>/<path>)

关于apache-spark - 在Spark中的AWS EMR集群上处理Google Storage中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64141204/

相关文章:

scala - 数据未加载到 Scala 中的表中

Hadoop 2.4 原生库问题

php - Yii 类未找到,命名空间使用

ios - 通过 iOS amazon sdk 在 s3 上上传图片缓慢

php - Amazon S3 存储桶上传所有文件为空

python - 将 RDD 划分为长度为 n 的元组

scala - HBase 连接实例

python - 来自 Spark 数据帧的 block topandas

python - Spark可调参数特别是执行程序内存

java - hadoop中的分区文件是如何创建的