2017-08-02 6 views
0

は、動的スキーマSQL表示のスパークで

df.printSchema() 

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

のようなものがどのように選択をマテリアライズすることなく、SELECTテーブルの結果について同様の動作を実現することができます印刷するのだろうか? I.

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) 

のようなものを書いて、LEATでのカラム名、必要に応じてNULL値の許容属性とデータ型の出力を受信したいと思います。

答えて

2

あなたはdescを使用できますが、テーブル上でのみ使用できます。つまり、まずクエリのテーブル結果を作成する必要があります。

データなしでテーブルを作成することができます。そのため、スキーマのみがあります。次にそれを抽出します。そしてテーブルを落とすことができます。これは回避策ですが、それほど美しくはありません。

実際に何かを実現したくない場合は、各列のスキーマをどこに配置する必要があるかということです。スキーマを含むテーブルall_tab_columnsがあります。クエリに応じてコンテンツを結合するだけです。

関連する問題