sql 动态显示架构
sql dynamically show schema
在火花中
df.printSchema()
会打印类似
的内容
root
|-- value: int (nullable = true)
|-- square: int (nullable = true)
|-- cube: int (nullable = true)
|-- key: int (nullable = true)
如何在不实现 select 的情况下为 SELECT table 的结果实现类似的行为?
IE。
SELECT a.a, a.b , dd.d FROM a JOIN dd on a.id = dd.id
我只想写一些类似
的东西
describe schema (SELECT a.a, a.b , dd.d FROM a JOIN dd on a.id = dd.id)
并接收至少列名、可选的可空性和数据类型的输出。
您可以使用 desc
,但只能在 table 上使用,这意味着您必须先创建查询的 table 结果。
您可以创建没有数据的 table,因此,您只有模式。然后你提取它。您可以删除 table。这是一种解决方法,但不是很漂亮。
如果您真的不想具体化任何内容,则意味着您必须获取每列所在位置的架构。您有一个包含架构的 table all_tab_columns
。只需根据您的查询组合内容。
在火花中
df.printSchema()
会打印类似
的内容 root
|-- value: int (nullable = true)
|-- square: int (nullable = true)
|-- cube: int (nullable = true)
|-- key: int (nullable = true)
如何在不实现 select 的情况下为 SELECT table 的结果实现类似的行为? IE。
SELECT a.a, a.b , dd.d FROM a JOIN dd on a.id = dd.id
我只想写一些类似
的东西describe schema (SELECT a.a, a.b , dd.d FROM a JOIN dd on a.id = dd.id)
并接收至少列名、可选的可空性和数据类型的输出。
您可以使用 desc
,但只能在 table 上使用,这意味着您必须先创建查询的 table 结果。
您可以创建没有数据的 table,因此,您只有模式。然后你提取它。您可以删除 table。这是一种解决方法,但不是很漂亮。
如果您真的不想具体化任何内容,则意味着您必须获取每列所在位置的架构。您有一个包含架构的 table all_tab_columns
。只需根据您的查询组合内容。