【问题标题】:How to partition a table in Databricks by data-size/row count not by column如何按数据大小/行数而不是按列对 Databricks 中的表进行分区
【发布时间】:2022-01-23 08:57:52
【问题描述】:

我见过使用partionBy 方法的databricks 示例。但建议分区为 128MB。我认为有一种方法可以尽可能接近地实现这一目标?取总大小,除以 128mb,然后按分区数而不是按维度进行分区。

对于如何实现这一点的任何建议将不胜感激。

【问题讨论】:

  • 你在看这个选项吗:spark.sql.files.maxPartitionBytes?
  • 据我了解 - 您从另一个数据库读取数据?你用什么 - JDBC?如果是,请说明您如何读取数据?
  • 是的,用 JDBC 读入

标签: pyspark databricks


【解决方案1】:

spark.sql.files.maxPartitionBytes的设置确实对Spark集群上读取数据时的最大分区大小有影响。通过这个配置我们可以根据数据的大小来控制分区。

【讨论】:

  • 这感觉很接近,但看看文档,这更像是分区大小的上限。但我需要找到一个至少可以分区 datasize/128 方式的列。我的情况是我从另一个数据库中读取了超过 10TB 的数据。但是操作很慢,不想手动找分区。感觉应该有一些默认设置。不过,我还是新手。欢迎任何建议。
猜你喜欢
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 1970-01-01
  • 2019-10-12
  • 2015-05-15
  • 1970-01-01
  • 2020-04-29
相关资源
最近更新 更多