Apache spark 在ApacheSpark中使用Bigquery连接器时,如何设置分区数?

Apache spark 在ApacheSpark中使用Bigquery连接器时,如何设置分区数?,apache-spark,pyspark,google-bigquery,google-cloud-dataproc,Apache Spark,Pyspark,Google Bigquery,Google Cloud Dataproc,我正在阅读googleclouddataproc和apachespark的文档,无法理解在使用Bigquery连接器时如何手动设置分区数 HDD是使用创建的,我强烈怀疑这可以通过传递给该函数的配置文件进行设置。但是,我实际上无法确定配置文件的可能值。Spark文档和Google文档似乎都没有指定或链接到Hadoop作业配置文件规范 是否有一种方法可以在创建此RDD时设置分区,或者作为下一步,我只需要重新分区?您需要在spark代码中进行重新分区,例如: val REPARTITION_VALUE

我正在阅读googleclouddataproc和apachespark的文档,无法理解在使用Bigquery连接器时如何手动设置分区数

HDD是使用创建的,我强烈怀疑这可以通过传递给该函数的配置文件进行设置。但是,我实际上无法确定配置文件的可能值。Spark文档和Google文档似乎都没有指定或链接到Hadoop作业配置文件规范


是否有一种方法可以在创建此RDD时设置分区,或者作为下一步,我只需要重新分区?

您需要在spark代码中进行重新分区,例如:

val REPARTITION_VALUE = 24
val rdd = sc.newAPIHadoopRDD(conf,classOf[GsonBigQueryInputFormat],classOf[LongWritable],classOf[JsonObject])
rdd.map(x => f(x))
.repartition(REPARTITION_VALUE)
.groupBy(_.1)
.map(tup2 => f(tup2._1,tup2._2.toSeq))
.repartition(REPARTITION_VALUE)  
等等……
使用rdd时,需要处理分区

解决方案:最好的解决方案是使用Dataset或DataFram,您需要在spark代码中进行重新分区,例如:

val REPARTITION_VALUE = 24
val rdd = sc.newAPIHadoopRDD(conf,classOf[GsonBigQueryInputFormat],classOf[LongWritable],classOf[JsonObject])
rdd.map(x => f(x))
.repartition(REPARTITION_VALUE)
.groupBy(_.1)
.map(tup2 => f(tup2._1,tup2._2.toSeq))
.repartition(REPARTITION_VALUE)  
等等……
使用rdd时,需要处理分区
解决方案:最好的解决方案是使用Dataset或DataFram