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

时间:2018-02-25 22:47:50

标签: apache-spark pyspark google-bigquery google-cloud-dataproc

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

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

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

1 个答案:

答案 0 :(得分: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