2016-03-04 10 views
5

Spark SQL'i parquet dosyasını yazmak için kullanıyorum.Spark SQL - gzip vs snappy ile lzo sıkıştırma formatları arasındaki fark

Varsayılan olarak Spark SQL, gzip'u desteklemektedir, ancak snappy ve lzo gibi diğer sıkıştırma biçimlerini de destekler.

Bu sıkıştırma biçimleri arasındaki fark nedir ve hangisinin en iyi olduğu Hive yükleme ile çalışmaktır.

+2

Varsayılan olarak Kıvılcım "gzip" "çabuk" kullanır ve değil gibi görünüyor. En azından s3'te gördüğüm şey: adlarının bir parçası olarak "snappy" dizesiyle oluşturulan dosyalar. – bashan

+0

@bashan: Kıvılcımın son sürümleri varsayılan formatı çabucak değiştirdi, 1.6.1'e kadar varsayılan parke sıkıştırma formatının gzip olduğunu görebiliyorum. – Shankar

cevap

10

Sadece verilerinizi deneyin.

lzo ve çırpıcı hızlı kompresörler ve çok hızlı açıcılardır, ancak daha iyi sıkıştırma yapan gzip ile karşılaştırıldığında daha az sıkıştırma özelliğine sahiptir, ancak biraz daha yavaştır.

5

Performans avantajları için daha yüksek disk kullanımını işleyebiliyorsanız, Snappy özelliğini kullanın (daha düşük CPU + Splittable). testlerimizde dayanarak

gzip dekompresyon sorgular dekompresyon bağlı yapmada (< 100MB/s) çok yavaş: Kıvılcım varsayılan Snappy için GZIP anahtarlamalı

, bu mantık oldu. Snappy, tek bir çekirdekte ~ 500MB/s 'da açılabilir.

Snappy:

  • Depolama Alanı: Yüksek
  • CPU Kullanımı: Düşük
  • ayrılabilir: Evet (1)

GZIP:

  • Depolama Alanı: Orta
  • CPU Kullanımı: Orta
  • ayrılabilir: No

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

İlgili konular