私は寄木張りファイルに存在する500K行のスパークDataFrameを持っています。 Spark(RStudioとR 3.3.1)の中にspark 2.0.0とSparkRパッケージを使用しています。これらはすべて、4つのコアと8GBのRAMを持つローカルマシン上で動作します。SparkRの回収が遅いのはなぜですか?
私はRで作業することができるデータセットの構築を容易にするために、collect()メソッドを使用してDataFrameをRにします。これを行うには約3分かかります。 data.tableパッケージを使用する同等のサイズのCSVファイル。
確かに、寄木張りファイルは圧縮されており、圧縮解除に必要な時間が問題の一部になる可能性がありますが、インターネット上で収集方法が特に遅く、説明の方法がほとんどわかりません。
私はsparklyrで同じ操作を試みましたが、はるかに高速です。残念なことに、sparklyrには、SparkRと同じように簡単にジョインやフィルタの内部で日付パスを実行する機能がありません。そのため、SparkRを使用していません。また、両方のパッケージを同時に使用することはできません(つまり、SparkR呼び出しを使用してクエリを実行し、sparklyrを使用してこれらのスパークオブジェクトにアクセスする)。
誰も、SparkRのcollect()メソッドの相対的な遅さ、および/または任意の解決策について、同様の経験を持っていますか?
500Kの線の例は一例に過ぎず、300Mの行を持つテーブルから描画されます。 Sparkは私のセットアップでこの作業をする必要がありますが、SparkとRの間でデータを移動するのが遅いことは大きなスピードアップです。 –