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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Apache Spark中使用Bigquery Connector时如何设置分区数?相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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

以上是关于在Apache Spark中使用Bigquery Connector时如何设置分区数?的主要内容,如果未能解决你的问题,请参考以下文章

使用 scala 从 spark 中删除 bigquery 表

使用 spark 更改 bigquery 中嵌套数据的列名

Spark AVRO 与 BigQuery 兼容

Google BigQuery Spark 连接器:如何在追加时忽略未知值

Google Spark-BigQuery-Connector如何利用BigQuery Storage API?

如何将 Spark-BigQuery_connector 用于现有的 spark 环境(不使用 google dataproc)