2016-03-04 24 views
5

parquetファイルを書き込むためにSpark SQLを使用しようとしています。Spark SQL - gzipとスナップとlzoの圧縮形式の違い

デフォルトでは、Spark SQLはgzipをサポートしていますが、snappylzoのような他の圧縮フォーマットもサポートしています。

これらの圧縮形式と、Hiveを使用して作業するのに最適な圧縮形式の違いは何ですか。

+2

デフォルトのスパークで "きびきび" ではなく "GZIP" を使用しているようです。少なくとも、それは私がs3で見るものです。名前の一部として文字列 "snappy"で作成されたファイルです。 – bashan

+0

@bashan:最新のsparkのバージョンは、デフォルトのフォーマットをスナッピーに変更しました.1.6.1までデフォルトの寄木細工の圧縮フォーマットはgzipです。 – Shankar

答えて

10

あなたのデータを試してみてください。

lzoとスナッパーは圧縮率が高く圧縮率が低いgzipと比較して圧縮率が高く、圧縮率が非常に高速ですが、少し遅くなります。

5

パフォーマンスの向上のためにディスクの使用量を増やすことができれば、スナッピーを使用します(CPU +スプリット可能)。

スパークは、デフォルトでスナッピーにGZIPから切り替わったとき、これは推論した:我々のテストに基づいて

、gzipで圧縮解除が非常に遅い(< 100メガバイト/秒)、 は、バインドされたクエリの解凍を行います。スナイピーは、単一コア上に~500MB/sで解凍できます。

スナッピー:

  • 収納スペース:高
  • CPU使用率:低
  • 分割可能:はい(1)

GZIP:

  • 収納スペース:ミディアム
  • CPU使用率:ミディアム
  • 分割可能:ません

1)http://boristyukin.com/is-snappy-compressed-parquet-file-splittable/