Databricks (Spark SQL) 表的索引

Posted

技术标签:

【中文标题】Databricks (Spark SQL) 表的索引【英文标题】:Indexes for Databricks (Spark SQL) tables 【发布时间】:2021-05-03 22:29:06 【问题描述】:

很好奇索引在 Databricks 中的工作原理。您是否可以将分区视为索引,因为它有效地将数据组织在分组的子类别中?

【问题讨论】:

【参考方案1】:

是的,分区可以看作是一种索引 - 它允许您直接跳转到必要的数据,而无需读取整个数据集。

对于databricks delta,还有另一个功能-Data Skipping。将数据写入 Delta 时,写入器正在收集前 N 列(默认为 32)的统计信息(例如,最小值和最大值)并将该统计信息写入 Delta 日志,因此当我们按索引列过滤数据时,我们知道是否给定文件可能包含或不包含给定数据。 databricks delta 的另一种索引技术是bloom filtering,它显示特定值是否绝对不在文件中,或者可能在文件中。

【讨论】:

以上是关于Databricks (Spark SQL) 表的索引的主要内容,如果未能解决你的问题,请参考以下文章

spark sql如何在databricks中创建表

如果 Databricks 或 Spark SQL 中存在表,则插入

如何在 Spark Databricks 中注册 SQL 函数

Databricks/Spark SQL 中的反透视表

Databricks/Spark SQL - 如何在地图类型字段中获取数据

如何计算 Spark SQL(Databricks)中表中的列数?