私はSpark 1.6.1を使用しています。同じ行の他の列に基づいて列の内容を動的に選択
categoryName
がString型であり、
cat*
はダブルです
+------------+-----+----+
|categoryName|catA |catB|
+------------+-----+----+
| catA |0.25 |0.75|
| catB |0.5 |0.5 |
+------------+-----+----+
:私のデータフレームがどのように見えると言うことができます。私はいくつかの後の計算に、このような抽出を必要とする
+------------+-----+----+-------+
|categoryName|catA |catB| score |
+------------+-----+----+-------+
| catA |0.25 |0.75| 0.25 | ('score' has value from column name 'catA')
| catB |0.5 |0.7 | 0.7 | ('score' value from column name 'catB')
+------------+-----+----+-------+
:私はcategoryName
列にある名前列の値が含まれます列を追加したいと思います。何か案は?
重要:カテゴリの列の名前はわかりません。ソリューションは動的である必要があります。
1)データセットAPIは右、スパーク2.0.0からでしょうか?私は1.6.1を使用しています 2)うーん、おそらく、私はそれをチェックします。 3.)しかし、私はudfの中で列名のコンテキストを緩くします、そうですか? 4.)動的ではありません –
spark 1.6.1はscala(2.0で変更)のデータセットAPIを持っています。 UDFに移動するときは、順序を設定して列名を使用できます。 –