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?
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
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