私は多くの列を持つスパークデータフレームを持っています。今、それらをマップに組み合わせて新しい列を作成したいと思います。例: しかし、私はまだdataset
にdfを変換する必要がありスパークデータフレーム列をマップ列に埋め込む方法は?
df.withColumn("newcol", struct(df.columns.head, df.columns.tail: _*))
:これを行うには
col1:String col2:String col3:String... coln:String =>
col: Map(colname -> colval)
一つの方法は、にあります。 struct
タイプと一致するケースクラスを定義する方法はわかりません。
もう1つの選択肢は、マップタイプに列を埋め込むことですが、これを表現する方法はわかりません。
データフレームにいくつの行がありますか? –
約40、それを一つずつリストアップするのは非常に面倒です – user3162587
質問が分かりません。 'Map(colname - > colval)' 'colval'は' colname'の下のすべての値の配列であるべきですか?そして、あなたが提供した方法は、各行を構造体として取得します。あなたが上で説明したものと全く同じではありません。サンプルデータセットと必要な出力を詳しく教えてください。 – philantrovert