Spark能否通过表属性查询?如何获取指定属性值的表名列表
高效获取特定自定义表属性的表名列表
不用遍历所有表逐个检查,直接通过查询Spark元数据视图就能批量筛选,效率高得多:
核心SQL语句
如果要指定数据库查询:
SELECT table_name FROM information_schema.tables WHERE table_schema = '你的数据库名' AND table_properties('this.is.my.key') = '12'
如果要查询所有数据库中的符合条件的表:
SELECT table_catalog, table_schema, table_name FROM information_schema.tables WHERE table_properties('this.is.my.key') = '12'
为什么这是更优方案
- 直接基于元数据批量查询,避免了遍历表时多次执行
SHOW TBLPROPERTIES或DESCRIBE EXTENDED的额外开销 - 语法简洁,一次查询就能返回所有符合条件的结果,尤其适合表数量较多的场景
table_properties函数在Spark 3.0+及Databricks Runtime各主流版本均支持,兼容性好
内容的提问来源于stack exchange,提问作者Syrius
相关产品推荐
相关产品推荐

