JSONにデータフレーム内のいくつかのフィールドを書き込もうとしています。データフレームの私のデータ構造はJSONにフィールドセットを書き込む方法は?
Key|col1|col2|col3|col4
key|a |b |c |d
Key|a1 |b1 |c1 |d1
今私は、JSONにCOL4フィールドにちょうどCOL1を変換し、JSONフィールドに
期待出力
[Key,{cols:[{col1:a,col2:b,col3:c,col4:d},{col1:a1,col2:b1,col3:c1,col4:d1}]
を名前を付けしようとしていますされます私はこれのためにudfを書いた。あなたが見ることができるように
val summary = udf(
(col1:String, col2:String, col3:String, col4:String) => "{\"cols\":[" + " {\"col1\":" + col1 + ",\"col2\":" + col2 + ",\"col3\":" + col3 + ",\"col4\":" + col4 + "}]}"
)
val result = input.withColumn("Summary",summary('col1,'col2,'col3,'col4))
val result1 = result.select('Key,'Summary)
result1.show(10)
これは
[Key,{cols:[{col1:a,col2:b,col3:c,col4:d}]}]
[Key,{cols:[{col1:a1,col2:b1,col3:c1,col4:d1}]}]
私の結果であり、それらがグループ化されていません。 UDF自体を使用してこれらの行をグループ化する方法はありますか?私はscala/Sparkを初めて使い、適切なudfを理解することができません。
私はあなたが正しくあなたの「予想出力」を終了しましたとは思いません。私は、オープニング "[{"と一致するように最後に "}]"があることを期待しています。 –