2017-10-03 20 views
-1

スパークデータフレームに配列カラムがあるため、1つの配列カラムからデータを抽出して新しいカラムを生成する必要があります。これに利用できる方法はありますか?スパークデータフレームから配列カラムを抽出する

id Amount 
10 [Tax:10,Total:30,excludingTax:20] 
11 [Total:30] 
12 [Tax:05,Total:35,excludingTax:30] 

このデータフレームを生成する必要があります。

ID Tax Total 
10 10 30 
11 0 30 
12 05 35 
+1

Amountカラムのスキーマについて教えてください。 – Suresh

答えて

0

あなたは確かに知っている場合、[消費税:10、合計:30、excludingTax:20]あなたは常に全体のデータフレームの上にマッピングし、金額としてそれらを抽出することができ、同じ順序で唯一のフィールド[0]は、金額[1] ...

次に、それらをケースクラスのインスタンスとして割り当て、最後にデータフレームに変換し直します。

金額に2つの値しかない場合、Amount [3]を呼び出さないように気をつけてください。これは配列の長さを調べることで簡単に達成できます。

注文がわからない場合は、 JSONRddを使うのが一番の方法です。 JSONオブジェクトをループして解析し、新しい行を作成します。最後にデータフレームに変換してください

関連する問題