Spark Coalesce

Spark Coalesce
Przetwarzanie dużych zbiorów danych to gorący temat w świecie technicznym. Istnieje wiele bibliotek i ram, które są używane do regularnego przetwarzania dużych zbiorów danych. Omówimy jedną strukturę, Apache Spark, który jest silnikiem przetwarzania danych dla danych masowo rozproszonych. Omówimy również jedną z jego popularnych metod, Spark Coalesce, który służy do zmniejszenia partycji zestawu danych, wraz z jego przykładem.

Co to jest Apache Spark?

Apache Spark to bezpłatne i open source narzędzie przetwarzania danych, które wykorzystuje podstawowe struktury programowania do utrzymywania i analizy danych w czasie rzeczywistym w kilku klastrach komputerów.

Spark rozpoczął się jako eksperyment wzmacniacza w UC Berkeley w 2009 roku. Jest częścią licencji BSD, która została wydana w 2010 roku. Spark stał się projektem Apache w 2013 roku. W 2014 r. Databricks osiągnął nowy rekord świata, sortując duże zestawy danych z Spark. Spark obsługuje różne języki programowania, takie jak R, Python, Java i Scala i jest 100 razy szybsze niż MapReduce w przetwarzaniu danych, ponieważ jest to wykonywane w pamięci. Zawiera mniej wierszy kodu, a do uwierzytelnienia używa kodu udostępnionego. Może również działać na przędzy, wykorzystując możliwości Kerberosa. Opiera się na Hadoop MapReduce i rozszerza koncepcję MapReduce, aby skutecznie wykorzystać nowe typy obliczeń.

Główną zaletą Spark nad Hadoopem jest wykorzystanie architektury przetwarzania w pamięci. Aby użyć rozproszonej pamięci replikacji, Spark może działać na HDFS. Spark można wykorzystać w tym samym klastrze Hadoop co MapReduce lub jako samodzielny framework przetwarzania. Przędza może również uruchamiać aplikacje Spark. Zamiast korzystać z lokalnej przestrzeni pamięci do obliczania, Spark wykorzystuje obliczenia w pamięci, umożliwiając użytkownikom przetwarzanie danych w pamięci RAM i szybkie pobieranie. Spark nie ma na celu zastąpienia Hadoopa; Można to uznać za komplement.

MapReduce i Spark są używane w tandemie: MapReduce uchwyty przetwarzania wsadowe, a iskra obsługi przetwarzania w czasie rzeczywistym. Kod iskier może zostać ponownie wykorzystany do przetwarzania wsadowego, łączenia strumieni w stosunku do danych historycznych i wykonywania zapytania ad-hoc w stanie strumienia. Spark obejmuje przesyłanie strumieniowe narzędzia danych, interaktywne/deklaratywne wyszukiwania, uczenie maszynowe, a także mapę i zmniejszenie.

Jaka jest metoda Spark Coalesce?

Metoda Coalesce służy do obniżenia liczby partycji zestawu danych. Coalesce unika pełnego tasowania poprzez przetasowanie danych za pomocą partycjonera skrótu (domyślnie) i dostosowuje się do istniejących partycji, a nie generowanie nowych. Oznacza to, że może jedynie zmniejszyć liczbę partycji. W Spark SQL, łączyć Metoda regularna jest metodą nieagregowaną. Aby zmniejszyć ilość przeniesionych danych, Coalesce korzysta z istniejących podziałów. Jeśli wszystkie kolumny są zerowe, Coalesce zwraca pierwszą wartość nulc. Coalesce jest szybszy niż reparowanie, ponieważ unika całego przetasowania, podczas gdy repartion jest pełna tasowania, co jest czasochłonne i drogie. Co najmniej jedna kolumna jest wymagana dla koalescencji, a wszystkie kolumny muszą być takie same lub kompatybilne.

Przykład zastosowania metody Coalesce

Aby przetestować funkcję Spark Coalesce, użyj następującego polecenia:

testdf = sqlContext.CreatedATAFrame ([(1,1), (2,2), (brak, 3), (4, none)], [„id”, „wartość”]))
+----+------+
|. Id | Wartość |
+----+------+
|. 1 | 1 |
|. 2 | 2 |
| NULL | 3 |
|. 4 | NULL |
+----+------+

Zaimportuj wymagane funkcje PYSPARK za pomocą następującego polecenia:

od Pyspark.SQL.Typy importują FloatType

od Pyspark.SQL.Funkcje importu *

Aby utworzyć nową kolumnę z wartościami bez null, zastosuj następujące polecenie:

tmp = testdf.withColumn („col”, coalesce (testdf ['id'], testDF ['value'])))
TMP.pokazywać()
+----+------+---------+
|. ID | Wartość | Col |
+----+------+---------+
|. 1 | 1 | 1 |
|. 2 | 2 | 2 |
| NULL | 3 | 3 |
|. 4 | NULL | 4 |
+----+------+---------+

Wniosek

Omówiliśmy o metodzie Apache Spark, Spark SQL i Spark SQL Coalesce. Dowiedzieliśmy się, że można go użyć do zmniejszenia partycji ramki danych wraz z jednym przykładem. Uświadomiliśmy się również, że metodę Coalesce można zastosować jedynie do zmniejszenia liczby partycji, podczas gdy partycjonowanie można zastosować do zmniejszenia lub zwiększenia partycji.