首页 > 解决方案 > 从 spark 目录中获取表名

问题描述

我有一个 DataSourceV2Relation 对象,我想从 spark 目录中获取其表的名称。spark.catalog.listTables()将列出所有表,但是有没有办法直接从对象中获取特定表?

标签: apache-sparkapache-spark-sql

解决方案


PySpark

from pyspark.sql.catalog import Table

def get_t_object_by_name(t_name:str, db_name='default') -> Table:
  catalog_t_list = spark.catalog.listTables('default')
  return next((t for t in catalog_t_list if t.name == t_name), None)

调用为:get_t_object_by_name('my_table_name')

结果示例:Table(name='my_table_name', database='default', description=None, tableType='MANAGED', isTemporary=False)

表类定义:https ://spark.apache.org/docs/2.3.0/api/java/org/apache/spark/sql/catalog/Table.html


推荐阅读