obsługa gzip w Spark

W projekcie Big Data planuję użyć spark , który ma kilka fajnych funkcji, takich jak obliczenia w pamięci dla powtarzających się obciążeń. Może działać na plikach lokalnych lub na plikach HDFS.

Jednak w oficjalnej dokumentacji nie mogę znaleźć żadnej wskazówki, jak przetwarzać pliki gzipped. W praktyce może być dość wydajny w przetwarzaniu .pliki gz zamiast rozpakowanych plików.

Czy jest sposób na ręczne zaimplementowanie odczytu plików gzipped lub rozpakowanie już automatycznie wykonywane podczas odczytu a .akta gz?

Author: ptikobj, 2013-04-30

1 answers

Z sekcji Spark Scala Programming guide na temat "Hadoop Datasets":

Spark może tworzyć rozproszone zbiory danych z dowolnego pliku przechowywanego w rozproszonym systemie plików Hadoop (HDFS) lub innych systemach pamięci masowej obsługiwanych przez Hadoop (w tym lokalny system plików, Amazon S3, Hypertable, HBase itp.). Spark obsługuje pliki tekstowe, pliki sekwencyjne i wszelkie inne formaty wejściowe Hadoop.

Wsparcie dla plików wejściowych gzip powinno działać tak samo jak w Hadoop. Na przykład, sc.textFile("myFile.gz") powinien automatycznie dekompresować i odczytywać pliki skompresowane gzip (textFile() jest w rzeczywistości zaimplementowane przy użyciu TextInputFormat Hadoop, który obsługuje pliki skompresowane gzip).

Jak wspomniał @nick-chammas w komentarzach:

Zauważ, że jeśli wywołasz sc.textFile() na pliku gziped, Spark da masz RDD z tylko 1 partycją (od 0.9.0). Dzieje się tak dlatego, że pliki gzipped są Nie splittable. Jeśli nie zmienisz RDD jakoś, wszelkie operacje na że RDD będzie ograniczone do jednego rdzenia

 67
Author: Josh Rosen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 21:57:09