在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 表
Google BigQuery Spark 连接器:如何在追加时忽略未知值
Google Spark-BigQuery-Connector如何利用BigQuery Storage API?
如何将 Spark-BigQuery_connector 用于现有的 spark 环境(不使用 google dataproc)