sparkデータフレームの最初の100行にアクセスし、結果をCSVファイルに書き戻したい。
なぜtake(100)
は基本的にインスタントなのに対し、
df.limit(100)
.repartition(1)
.write
.mode(SaveMode.Overwrite)
.option("header", true)
.option("delimiter", ";")
.csv("myPath")
永遠にかかります。パーティションごとに最初の100レコードを取得するのではなく、100レコードだけを取得します。
これは、述語プッシュダウンが現在Sparkでサポートされていないためです これは非常に良い答え を参照してください。
実際、take(n)にも非常に長い時間がかかるはずです。ただし、テストしたところ、同じ結果が得られました。データベースのサイズに関係なく、テイクはほとんど瞬時に発生しますが、制限には多くの時間がかかります。