我正在阅读Google Cloud Dataproc和Apache Spark的文档,我无法弄清楚在使用Bigquery连接器时如何手动设置分区数。
使用newAPIHadoopRDD创建硬盘驱动器,我强烈怀疑这可以通过传递给此功能的配置文件来设置。但我实际上无法弄清楚配置文件的可能值是什么。 Spark文档或Google文档似乎都没有指定或链接到Hadoop作业配置文件规范。
有没有办法在创建此RDD时设置分区,还是只需要将其重新分区作为下一步?
答案 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