2016-09-26 1 views
0

私は、csvからロードされたデータフレームを持っています.0.2 GBのカラムは、21035のカラム と約200000のローを含んでいます。スパークデータフレームタスクのスピードアップ?

私は、データフレーム上でこの機能を実行しました:

cnts = (df.select([countDistinct(c).alias(c) for c in df.columns]).first().asDict()) 

私のシステムは32ギガバイトのRAMを持って、このタスクは、遅すぎるの周り13.5時間作業時間を示し、これは正常ですか? または、私は間違ったことをしており、少しスピードアップできますか? これはPOC用のWindowsサーバー上でのスパークのスタンドアロンインストールです。 enter image description here

ca

+0

リクエストを行う前にdf.persist()を使用しましたか?あなたのマシンにはどれくらいのコアがありますか? 8?パーティションの数を増やし、圧縮をアクティブにすることができます。 – GwydionFR

+0

はい、私はして、それは8つのコアを示しています。どのように圧縮を有効にする? –

+0

spark.rdd.compress \tを参照してください。ああ、分散ファイルシステムや標準ファイルシステム(ext4、NTFSなど)を使用していますか? – GwydionFR

答えて

0

RDDを持続し、MEMORY_AND_DISKストレージレベルを使用し、あなたがメモリに十分なを持っていない場合、それは再計算と比較して、パフォーマンス上の利点を持っていますどのディスクへの書き込みを行うようにしようとしてみてくださいRDD。

ディスクに永続化する場合は、KYROシリアル化を使用してください。デフォルトでは、バイナリ形式は遅いです。

関連する問題