【问题标题】:Unable to use SparkSQL to read from table with row size > 2GB无法使用 SparkSQL 从行大小 > 2GB 的表中读取
【发布时间】:2021-08-05 01:13:52
【问题描述】:

我正在尝试使用 SparkSQL 以 Parquet 格式将我的数据库导出到我的 S3。

我的一个表包含 > 2GB 的行大小。 Spark 是通过--conf spark.executor.memory=21g --conf spark.executor.memoryOverhead=9g --conf spark.executor.cores=8 提交的。

Spark 似乎有一个限制:Maximum size of rows in Spark jobs using Avro/Parquet。但不确定是不是这样。

有解决办法吗?

【问题讨论】:

  • 你检查过数据帧的分区数吗?有时增加分区数量可以解决问题。

标签: apache-spark apache-spark-sql


【解决方案1】:

spark.driver.maxResultSize 的默认值为1g。如果遇到此问题,您可能需要将其设置得更高:

org.apache.spark.SparkException: Job aborted due to stage failure: Total size of serialized
results of XXXX tasks (X.0 GB) is bigger than spark.driver.maxResultSize (X.0 GB)

参考

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    相关资源
    最近更新 更多