pyspark Dataproc spark代码中的Hadoop fs配置

am46iovg  于 5个月前  发布在  Spark
关注(0)|答案(1)|浏览(55)

我遇到了一个spark代码,它运行在GCP dataproc上,阅读和写入数据到GCS。代码有下面的spark配置。

spark_session.sparkContext._conf.set("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
spark_session.sparkContext._conf.set("spark.hadoop.fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
spark_session.sparkContext._conf.set("fs.gs.auth.service.account.enable", "true")
spark_session.sparkContext._conf.set("fs.AbstractFileSystem.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS")
spark_session.sparkContext._conf.set("fs.gs.project.id", "<val>")
spark_session.sparkContext._conf.set("fs.gs.auth.service.account.email", "<val>")
spark_session.sparkContext._conf.set("fs.gs.auth.service.account.private.key.id", "<val>"])
spark_session.sparkContext._conf.set("fs.gs.auth.service.account.private.key", "<val>")

字符串

问题

1.为什么我们需要在上面设置Hadoop相关的配置,我们不能直接使用spark.read()从spark中读取云存储中的数据,只要Servcie帐户标记为Dataproc就需要访问吗?
1.为什么我们需要使用spark_session.sparkContext._conf.set(),我们可以不使用spark_session.conf.set()吗?

0yycz8jy

0yycz8jy1#

  1. GCS身份验证是可选的。默认情况下,在Dataproc集群中,GCS连接器自动使用VM的服务帐户对GCS进行身份验证。指定GCS身份验证属性后,连接器将使用用户指定的服务帐户。请注意,fs.gs.auth.service.account.enable和其他一些身份验证属性仅在GCS连接器v2中可用,请参阅此文档。在v3中,支持更多身份验证类型,并且引入了一个新的属性fs.gs.auth.type来显式地指定auth类型,请参阅此文档。
    1.两者都可以用来配置Spark属性,但是SparkContext从一开始就被引入了,Spark Session是在Spark 2.0中引入的,作为早期Spark Context和SQL Context API的替代品。所以SparkSession是首选。请参阅article

相关问题