1
データフレームがあり、データフレーム内の行をランダム化する必要があります。私は1の割合を与えることでデータをサンプリングしようとしましたが、これはうまくいきませんでした(興味深いことに、これはパンダで動作します)。pyspark:データフレーム内の行のランダム化
データフレームがあり、データフレーム内の行をランダム化する必要があります。私は1の割合を与えることでデータをサンプリングしようとしましたが、これはうまくいきませんでした(興味深いことに、これはパンダで動作します)。pyspark:データフレーム内の行のランダム化
これはPandasで動作します。これは、ローカルシステムでのサンプルの取得は、通常、データの入れ替えによって解決されるためです。一方のスパークは、データを線形スキャンすることによってシャッフルを回避します。つまり、Sparkでサンプリングすると、オーダーではなくサンプルのメンバーがランダム化されます。
from pyspark.sql.functions import rand
df = sc.parallelize(range(20)).map(lambda x: (x,)).toDF(["x"])
df.orderBy(rand()).show(3)
## +---+
## | x|
## +---+
## | 2|
## | 7|
## | 14|
## +---+
## only showing top 3 rows
を、それは次のとおりです:
あなたは、ランダムな数字の列でDataFrame
を注文することができ
DataFrame
の値の順番は、それほど重要ではない場合があり、DataFrame
はインデックス作成をサポートしていないため、収集することは比較的無駄です。