【问题标题】:Pyspark split the file while writing with specific limitPyspark 在特定限制下写入时拆分文件
【发布时间】:2022-10-07 04:06:16
【问题描述】:

我正在查看在将数据帧写入 pyspark 中的 csv 时要传递的特定限制( 4GB )大小。我已经尝试过使用 maxPartitionBytes,但没有按预期工作。

下面是我在 hive-ORC 格式的 90 GB 表上使用和测试的表。在导出(写入)级别,它给出了 4 GB 以外的随机文件大小

此处有任何建议以在写入时拆分具有限制大小的文件。在这里,我不想使用重新分区或合并,因为 df 正在经历很多广泛的转换。

df.write.format(\"csv\").mode(\"overwrite\").option(\"maxPartitionBytes\", 4*1024*1024(1024).save(outputpath)

    标签: python apache-spark pyspark spark2.4.4


    【解决方案1】:

    根据文档 spark.sql.files.maxPartitionBytes 正在读取,如果您稍后进行一些随机播放任务的最终大小并且由于写入的最终文件可能会改变

    Spark docu

    您可以尝试使用 spark.sql.files.maxRecordsPerFile 根据文档它的工作写入

    spark.sql.files.maxRecordsPerFile写入单个文件的最大记录数。如果这个值 为零或负数,没有限制。

    如果它不能解决问题,我认为其他选项是,正如你提到的,在写入之前重新分区这个数据集

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多