如何在不在 Databricks 中加载 table 数据的情况下获取模式?
How to get schema without loading table data in Databricks?
我正在使用 Databricks,我使用 spark 加载数据并将其发布到 SQL 数据库。我需要做的任务之一是获取数据库的 table 模式,从而查看每一列的数据类型。到目前为止,我能够做到的唯一方法是加载整个 table 然后提取模式。
df_tableA = spark.read.format("jdbc") \
.option("url", datasource_url) \
.option("dbtable", table_name) \
.option("user", dbuser) \
.option("password", dbpassword) \
.option("driver", driver) \
.load()
但是我的目标是只获取架构而不加载整个 table 因为我想加快进程并且我不想使内存过载。
你能建议一个聪明而优雅的方法来实现我的目标吗?
通常,load
不会将 table 加载到内存中。但是如果你愿意,你可以使用虚拟查询并传递给 dbtable
就像 .option("dbtable", "(select * from table where 1 = 2) t")
我正在使用 Databricks,我使用 spark 加载数据并将其发布到 SQL 数据库。我需要做的任务之一是获取数据库的 table 模式,从而查看每一列的数据类型。到目前为止,我能够做到的唯一方法是加载整个 table 然后提取模式。
df_tableA = spark.read.format("jdbc") \
.option("url", datasource_url) \
.option("dbtable", table_name) \
.option("user", dbuser) \
.option("password", dbpassword) \
.option("driver", driver) \
.load()
但是我的目标是只获取架构而不加载整个 table 因为我想加快进程并且我不想使内存过载。
你能建议一个聪明而优雅的方法来实现我的目标吗?
通常,load
不会将 table 加载到内存中。但是如果你愿意,你可以使用虚拟查询并传递给 dbtable
就像 .option("dbtable", "(select * from table where 1 = 2) t")