1
Sparkを使用してScalaのDataFrame
にある異なる(文字列と数値)タイプのカラムの最大値を取得するにはどうすればよいですか?グループのいくつかのカラムでSpark Dataframeを最大にする
+----+-----+-------+------+
|name|value1|value2|string|
+----+-----+-------+------+
| A| 7| 10| "a"|
| B| 4| 6| "b"|
+----+-----+-------+------+
apply(max,axis=0)
とパンダのように機能がありますか私は、UDFを記述する必要があります:
レッツはそれが私のデータ
+----+-----+-------+------+
|name|value1|value2|string|
+----+-----+-------+------+
| A| 7| 9| "a"|
| A| 1| 10| null|
| B| 4| 4| "b"|
| B| 3| 6| null|
+----+-----+-------+------+
であり、所望の結果があると言いますか?
私ができることはdf.groupBy("name").max("value1")
ですが、私は2つを実行することができませんmax
行内にSequence
が働くのはmax()
の機能です。
すぐに問題を解決するためのアイデアはありますか?
も、私はすべての列をハードコーディングする必要はありません方法はありますか?すべての列をループしますか? (col < - df.columns){df = df.groupBy( "name")。max(col)} 'のようなものですか?厄介な30列を覚えていません –
ああ、ところで:もちろん、列文字列からの文字列選択はその解決策では考慮されません。 –
'max()'も 'agg'の文字列で動作します。しかし、それはアルファベット順に最大値を取るので、「ヌル」の名前を変更することを検討するかもしれません。 –