在Apache Spark中使用Bigquery Connector时如何设置分区数?

问题描述 投票:0回答:1

我正在阅读Google Cloud Dataproc和Apache Spark的文档,我无法弄清楚在使用Bigquery连接器时如何手动设置分区数。

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

有没有办法在创建此RDD时设置分区,还是只需要将其重新分区作为下一步?

apache-spark pyspark google-bigquery google-cloud-dataproc
1个回答
2
投票

你需要在你的火花代码中做重新分区,例如:

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时,您将需要处理分区 解决方案:最佳解决方案是使用数据集或DataFram

© www.soinside.com 2019 - 2024. All rights reserved.