2017-10-17 9 views
0

私は以下のようにSpark SQLを使って各要素を列として持つ構造体に変換しようとしています。 Explode(コントロール)が機能していません。誰かがこれを行う方法を提案してもらえますか?構造体の配列を爆発させるSQLのスパーク

入力:

{ 
"control" : [ 
    { 
     "controlIndex": 0, 
     "customerValue": 100.0, 
     "guid": "abcd", 
     "defaultValue": 50.0, 
     "type": "discrete" 
    }, 
    { 
     "controlIndex": 1, 
     "customerValue": 50.0, 
     "guid": "pqrs", 
     "defaultValue": 50.0, 
     "type": "discrete" 
    } 
    ] 
} 

所望の出力:

controlIndex customerValue guid defaultValult type 

0   100.0   abcd 50.0   discrete 

1   50.0   pqrs 50.0   discrete 
+1

内の各要素に新しい行を作成します。あなたは、コードを追加することができますあなたがしようとした? – mrsrinivas

+0

私はこれを試しました - myviewからexplode(control)を選択してくださいそれは1つの列を作り、その中に各構造を入れます – abiswas

答えて

0

爆発は、指定された配列またはマップコラム

import org.apache.spark.sql.functions.explode 

df.select(
    explode($"control") 
)  
+0

私はしようとします... thx – abiswas