gpt4 book ai didi

apache-spark - 通过 Spark : Requested multiple partitions but getting only 1 使用 BigQuery Storage API

转载 作者:行者123 更新时间:2023-12-05 06:22:59 25 4
gpt4 key购买 nike

我正在使用 bigquery-spark-connector 从使用 BigQuery Storage API 的 BigQuer 读取数据。我的脚本(自动)从 BigQuery Storage API 请求多个分区,但我收到警告:

WARN com.google.cloud.spark.bigquery.direct.DirectBigQueryRelation:请求了 2 个分区,但只从 BigQuery Storage API 收到了 1 个

Spark 作业需要很长时间,我认为这是因为它没有读取多个分区。如何确保 BigQuery Storage API 为我提供所需的所有分区?这里发生了什么,为什么它只给我一个分区,无论我请求多少?

首先我创建一个 SparkSession:

SparkSession spark = SparkSession.builder()
.appName("XXX")
.getOrCreate();

这是导致警告的代码:

Dataset<Row> data = spark.read()
.format("bigquery")
.option("table","project.dataset.table")
.load()
.cache();

最佳答案

当从 BigQuery 存储 API 请求分区时,spark-bigquery-connector 使用一些试探法来询问。返回的分区是 BigQuery 使用的实际分区,可能低于启发式预测的分区。这是正常情况,因此对于这种情况,警告可能有点过于严重(我也与 BigQuery 团队讨论过这个问题)。有关更多上下文,请阅读 requestedStreams 参数的描述 here .

第二个问题是 Spark 作业需要很长时间。如果增加资源 - 特别是执行者的数量没有帮助,请在 spark-bigquery-connector project 中打开一个错误。使用实际的流 ID 和其余的 spark 配置,以便连接器和 BoigQuery 团队能够检查它。

关于apache-spark - 通过 Spark : Requested multiple partitions but getting only 1 使用 BigQuery Storage API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58766857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com