PySpark DataFrameからランダムな行を取得するにはどうすればよいですか?パラメーターとして分数を取るメソッドsample()
のみが表示されます。この分数を_1/numberOfRows
_に設定すると、結果がランダムになり、行が表示されないことがあります。
RRD
には、サンプルに含める要素の数をパラメーターとして取るメソッドtakeSample()
があります。各パーティションをカウントする必要があるため、これは遅いかもしれませんが、DataFrameでこのようなものを取得する方法はありますか?
単にtakeSample
でRDD
を呼び出すことができます:
df = sqlContext.createDataFrame(
[(1, "a"), (2, "b"), (3, "c"), (4, "d")], ("k", "v"))
df.rdd.takeSample(False, 1, seed=0)
## [Row(k=3, v='c')]
収集したくない場合は、単により高い割合で制限することができます。
df.sample(False, 0.1, seed=0).limit(1)