Úvod do souboru dat Spark

Dataset je datová struktura ve Spark SQL, která poskytuje bezpečnost typu kompilace, objektově orientované rozhraní a optimalizaci Spark SQL.

Koncepčně se jedná o tabulkovou strukturu v paměti mající řádky a sloupce, která je distribuována do několika uzlů, jako je Dataframe.

Jedná se o rozšíření Dataframe. Hlavní rozdíl mezi datovou sadou a datovým rámečkem je v tom, že datové sady jsou silně zadány.

(Dataset) = (Dataframe + Bezpečnost typu kompilace)

Dataset byl vydán ve Spark 1.6 jako experimentální API. Dataframe i Dataset jsou ve verzi Spark 2.0 sjednoceny a Dataframe se stává aliasem pro Dataset (Row).

Dataframe = Dataset (Row)

Proč potřebujeme soubor dat Spark?

Abychom měli jasnou představu o Datasetu, musíme začít trochu historií jisker a jejich vývoje.

RDD je jádrem Spark. Dataframe byl inspirován SQL a usnadnil věci a byl vytvořen na vrcholu RDD. Dataframe je ekvivalent k tabulce v relační databázi nebo DataFrame v Pythonu.

RDD poskytuje bezpečnost typu kompilace, ale v RDD neexistuje automatická optimalizace.

Dataframe poskytuje automatickou optimalizaci, ale postrádá bezpečnost typu kompilace.

Dataset je přidán jako rozšíření Dataframe. Dataset kombinuje vlastnosti jak RDD (tj. Typu typu kompilace typu time), tak dataframe (tj. Automatická optimalizace Spark SQL).

(RDD (Spark 1.0)) -> (Dataframe (Spark1.3)) -> (Dataset (Spark1.6))

Protože Dataset má bezpečnost při kompilaci, je proto podporován pouze ve kompilovaném jazyce (Java & Scala), ale nikoli v interpretovaném jazyce (R & Python). Spark Dataframe API je však k dispozici ve všech čtyřech jazycích (Java, Scala, Python & R) podporovaných programem Spark.

Jazyk podporovaný programem SparkDataframe APIRozhraní API datové sady
Kompilovaný jazyk (Java a Scala)ANOANO
Interpretovaný jazyk (R & Python)ANONE

Jak vytvořit soubor dat Spark?

Existuje několik způsobů, jak vytvořit dataset založený na použití

1. Nejprve vytvořte SparkSession

SparkSession je jediný vstupní bod do jiskrové aplikace, která umožňuje interakci s podkladovými funkcemi Spark a programování Spark s API API DataFrame a Dataset.

val spark = SparkSession
.builder()
.appName("SparkDatasetExample")
.enableHiveSupport()
.getOrCreate()

  • Chcete-li vytvořit dataset pomocí základní datové struktury jako Range, Sequence, List atd.:

Pomocí Range

Použití sekvence

Použití seznamu

  • Vytvoření datového souboru pomocí sekvence tříd případů voláním metody .toDS ():

  • Postup vytvoření datového souboru z RDD pomocí .toDS ():

  • Chcete-li vytvořit dataset z Dataframe pomocí třídy Case:

  • Chcete-li vytvořit dataset z Dataframe pomocí Tuples:

2. Operace na souboru dat Spark

  1. Příklad počtu slov

  1. Převést soubor dat Spark na datový rámec

Můžeme také převést soubor dat Spark na Datafame a použít rozhraní Dataframe API, jak je uvedeno níže:

Vlastnosti Spark Dataset

  1. Typ Bezpečnost

Dataset poskytuje bezpečnost typu kompilace. To znamená, že syntaxe i chyby analýzy aplikace budou před spuštěním zkontrolovány v době kompilace.

  1. Neměnitelnost

Dataset je také neměnný jako RDD a Dataframe. To znamená, že vytvořené datové sady nemůžeme změnit. Pokaždé, když se na datovou sadu použije jakákoli transformace, vytvoří se nový datový soubor.

  1. Schéma

Dataset je tabulková struktura v paměti, která má řádky a pojmenované sloupce.

  1. Výkon a optimalizace

Stejně jako Dataframe i Dataset používá Catalyst Optimization k vygenerování optimalizovaného plánu logických a fyzických dotazů.

  1. Programovací jazyk

Api datasetu je přítomen pouze v Javě a Scale, což jsou kompilované jazyky, ale nikoli v Pythonu, což je interpretovaný jazyk.

  1. Líné hodnocení

Stejně jako RDD a Dataframe i Dataset provádí líné vyhodnocení. To znamená, že výpočet probíhá pouze při provedení akce. Spark dělá pouze plány během transformační fáze.

  1. Serializace a odvoz odpadu

Datový soubor Spark nepoužívá standardní serializátory (serializace Kryo nebo Java). Místo toho používá rychlé paměťové kodéry Tungsten, které rozumí vnitřní struktuře dat a mohou efektivně transformovat objekty na vnitřní binární úložiště. Využívá serializaci dat mimo haldu pomocí kodéru Tungsten, a proto není třeba sbírat odpadky.

Závěr

Dataset je nejlepší z RDD i Dataframe. RDD poskytuje bezpečnost typu kompilace, ale neexistuje automatická optimalizace. Dataframe poskytuje automatickou optimalizaci, ale postrádá bezpečnost typu kompilace. Dataset poskytuje bezpečnost typu kompilace i automatickou optimalizaci. Proto je datová sada tou nejlepší volbou pro vývojáře Spark používající Javu nebo Scalu.

Doporučené články

Toto je průvodce datovým souborem Spark. Zde diskutujeme o tom, jak vytvořit soubor dat Spark několika způsoby, s příklady a funkcemi. Další informace naleznete také v následujících článcích -

  1. Příkazy Spark Shell
  2. Spark Otázky k rozhovoru
  3. Kariéra ve hře Spark
  4. Spark Streaming
  5. Různé operace související s n-ticemi
  6. Spark SQL Dataframe
  7. Typy spojení ve Spark SQL (příklady)
  8. Průvodce seznamem unixových příkazů shellu
  9. Prvních 6 komponent jisker

Kategorie: