48

ビッグ データ プロジェクトの場合、私はsparkを使用する予定です。これには、繰り返されるワークロードに対するインメモリ計算などの優れた機能がいくつかあります。ローカル ファイルまたは HDFS 上で実行できます。

ただし、公式ドキュメントには、gzip 圧縮されたファイルの処理方法に関するヒントが見つかりません。実際には、解凍されたファイルの代わりに .gz ファイルを処理する方が効率的です。

gzip されたファイルの読み取りを手動で実装する方法はありますか、または .gz ファイルの読み取り時に解凍が既に自動的に行われていますか?

4

1 に答える 1

80

「Hadoop データセット」に関するSpark Scala プログラミング ガイドのセクションから:

Spark は、Hadoop 分散ファイル システム (HDFS) または Hadoop でサポートされているその他のストレージ システム (ローカル ファイル システム、Amazon S3、Hypertable、HBase などを含む) に保存されている任意のファイルから分散データセットを作成できます。Spark は、テキスト ファイル、SequenceFiles、およびその他の Hadoop InputFormat をサポートしています。

gzip 入力ファイルのサポートは、Hadoop と同じように機能するはずです。たとえば、 gzip で圧縮されたsc.textFile("myFile.gz")ファイルを自動的に解凍して読み取る必要があります (textFile()実際には、gzip で圧縮されたファイルをサポートするHadoop の を使用して実装されTextInputFormatています)。

コメントで@nick-chammasが述べたように:

gzip されたファイルを呼び出した場合、Spark は 1 つのパーティションのみを含む RDD を提供することに注意してくださいsc.textFile()(0.9.0 現在)。これは、gzip ファイルが分割可能でないためです。何らかの方法で RDD を再分割しない場合、その RDD での操作は単一のコアに制限されます。

于 2013-04-30T22:01:50.617 に答える