使用 pyspark 检查 dbfs 中镶木地板表长度的最佳方法?
Posted
技术标签:
【中文标题】使用 pyspark 检查 dbfs 中镶木地板表长度的最佳方法?【英文标题】:Most optimal method to check length of a parquet table in dbfs with pyspark? 【发布时间】:2021-12-22 21:31:42 【问题描述】:我有一个可以用 pyspark 读取的 dbfs 表,但我只需要知道它的长度 (nrows)。我知道我可以读取文件并通过table.count()
获取它,但这需要一些时间。
有没有更好的方法来解决这个问题?
【问题讨论】:
Parquet 文件存储每个行组的行数,并在文件页脚中作为单独的计数。 Spark 能够通过从那里获取计数而不是扫描整个文件来“作弊”,从而使count()
操作非常高效(当然,除非您有数百万个文件)。
【参考方案1】:
恐怕不会。
由于您使用的是 dbfs,我想您正在使用带有 Databricks 的 Delta 格式。因此,理论上,您可以检查元存储,但是:
元存储不是最新信息的真实来源 Delta 表
https://docs.delta.io/latest/delta-batch.html#control-data-location
【讨论】:
以上是关于使用 pyspark 检查 dbfs 中镶木地板表长度的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章
使用 pyspark 插入镶木地板文件时,Hive 表需要对每个新分区进行“修复”