2017-08-02 83 views
0

在火花sql中動態顯示模式

df.printSchema() 

將打印出類似這樣

root 
    |-- value: int (nullable = true) 
    |-- square: int (nullable = true) 
    |-- cube: int (nullable = true) 
    |-- key: int (nullable = true) 

我怎樣才能達到一個SELECT表的結果類似的行爲,而不將選擇? 也就是說

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) 

,並在真皮休閒包接收輸出的列名,可選爲空性和數據類型。

回答

2

您可以使用desc但只能在一個表上,這意味着您必須首先創建查詢的表結果。

您可以創建沒有數據的表,因此只有模式。然後你提取它。你可以放下桌子。這是一個解決方法,但不是很漂亮。

如果你真的不想實現任何東西,這意味着你必須得到他們所在的每一列的架構。您有一張表all_tab_columns其中包含該架構。根據您的查詢結合內容。