【发布时间】:2019-11-08 12:43:59
【问题描述】:
我正在使用 bigquery-spark-connector 从使用 BigQuery Storage API 的 BigQuer 中读取数据。我的脚本(自动)从 BigQuery Storage API 请求多个分区,但我收到警告:
警告 com.google.cloud.spark.bigquery.direct.DirectBigQueryRelation:请求 2 个分区,但仅从 BigQuery Storage API 收到 1 个
Spark 作业需要很长时间,我认为这是因为它没有读取多个分区。如何确保 BigQuery Storage API 为我提供所需的所有分区?这里发生了什么,为什么无论我请求多少,它都只给我一个分区?
首先我创建一个 SparkSession:
SparkSession spark = SparkSession.builder()
.appName("XXX")
.getOrCreate();
这是导致 WARN 的代码:
Dataset<Row> data = spark.read()
.format("bigquery")
.option("table","project.dataset.table")
.load()
.cache();
【问题讨论】:
-
你的桌子有多大?
-
我尝试了多个表。它尝试创建 2 个分区的表是 977.25MB,如果我尝试使用更大的表,它会尝试更多的分区,但我总是从 Storage API 收到 1 个分区,无论我正在读取的表的大小如何.
标签: apache-spark google-bigquery google-cloud-dataproc