cancel
Showing results forย 
Search instead forย 
Did you mean:ย 
Data Engineering
Join discussions on data engineering best practices, architectures, and optimization strategies within the Databricks Community. Exchange insights and solutions with fellow data engineers.
cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

How to get all the tables name with a specific column or columns in a database?

ramankr48
Contributor II

let's say there is a database db in which 700 tables are there, and we need to find all the tables name in which column "project_id" is present.

just an example for ubderstanding the questions.

1 ACCEPTED SOLUTION

Accepted Solutions

Anonymous
Not applicable
databaseName = "db"
desiredColumn = "project_id"
database = spark.sql(f"show tables in {databaseName} ").collect()
tablenames = []
for row in database:
  cols = spark.table(row.tableName).columns
  if desiredColumn in cols:
    tablenames.append(row.tableName)
 

Something close to that should work.

View solution in original post

5 REPLIES 5

Anonymous
Not applicable
databaseName = "db"
desiredColumn = "project_id"
database = spark.sql(f"show tables in {databaseName} ").collect()
tablenames = []
for row in database:
  cols = spark.table(row.tableName).columns
  if desiredColumn in cols:
    tablenames.append(row.tableName)
 

Something close to that should work.

Thanks josephk it worked

Hubert-Dudek
Esteemed Contributor III

Other possible solutions:

  • use new databricks search,
  • for those who migrated, use lineage in the unity catalog,
  • use lineage with Pureview (there is integration with hive metastore)

Being-UK
New Contributor II

Thanks @Joseph Kambourakisโ€‹ 

but the code seems to rendering errors at my end:

com.immuta.spark.exceptions.NoSuchDataSourceException: A data source with the table name '`v_table_name`' does not exist, is not in the current project, or is not accessible by the current user.

I've changed the original table name to 'v_table_name', as it happenes the table name is the first table on the schema, so it seems the code is searching through the schema but fails on the first table for some reason. Thanks

Anonymous
Not applicable

Sounds like an immuta problem, ask them. Def not a spark error.

Connect with Databricks Users in Your Area

Join a Regional User Group to connect with local Databricks users. Events will be happening in your city, and you wonโ€™t want to miss the chance to attend and share knowledge.

If there isnโ€™t a group near you, start one and help create a community that brings people together.

Request a New Group