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ść”]))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'])))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.