問題タブ [pyspark-dataframes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
477 参照

pyspark - Pyspark:上位5行の値を見つけて1に変換し、残りをすべて0に変換する方法は?

データフレームがあり、各行で最大 5 つの値を見つけ、それらの値のみを 1 に変換し、データフレーム構造を維持しながらすべてを 0 に変換する必要があります。つまり、列名は同じままにする必要があります。

toLocalIterator を使用してから、各行をリストに変換してから、上位 5 を値 1 に変換しようとしましたが、大きなデータセットでコードを実行すると java.lang.outOfMemoryError が発生します。ログを見ていると、推奨される最大サイズが 100KB であるのに、非常に大きなサイズ (約 25000KB) のタスクが送信されていることがわかりました。

上位 5 つの値を見つけて特定の値 (この場合は 1) に変換し、残りをすべて 0 にするより良い方法はありますか?

編集1:

たとえば、入力としてこの10列と5行がある場合

これは私が出力として欲しいものです

ご覧のとおり、行と列の構造を維持しながら、各行の上位 (最大) 5 つの値を見つけて、それらを 1 に変換し、残りの値を 0 に変換します。

これは私が使用しているものです(outOfMemoryErrorが発生します)

0 投票する
1 に答える
97 参照

pandas - 別の列の値に基づいて、列を複数に分割する方法は?

Python/pyspark の別の列の値に基づいて、1 つの列を 4 つに分割する必要があります。コードに基づいてフィルタリングし、複数の df を結合してみました。これを行うより良い方法はありますか?