Úvod do súboru údajov Spark

Dataset je dátová štruktúra v Spark SQL, ktorá poskytuje bezpečnosť typu kompilácie, objektovo orientované rozhranie a optimalizáciu Spark SQL.

Koncepčne je to tabuľková štruktúra v pamäti, ktorá má riadky a stĺpce a ktorá je distribuovaná do viacerých uzlov, ako je napríklad Dataframe.

Je to rozšírenie Dataframe. Hlavný rozdiel medzi množinou údajov a prvkom DataFrame je v tom, že množiny údajov sú výrazne napísané.

(Dataset) = (Dataframe + bezpečnosť typu kompilácie)

Dataset bol vydaný v programe Spark 1.6 ako experimentálne API. Dataframe aj Dataset sú zjednotené vo verzii Spark 2.0 a Dataframe sa stáva aliasom pre Dataset (Row).

Dataframe = množina údajov (riadok)

Prečo potrebujeme súbor údajov Spark?

Aby sme jasne pochopili Dataset, musíme začať trochu históriou iskry a jej vývoja.

RDD je jadrom spoločnosti Spark. Produkt Dataframe, ktorý bol inšpirovaný programom SQL a zjednodušil jeho fungovanie, bol vytvorený na vrchole RDD. Dataframe je ekvivalent k tabuľke v relačnej databáze alebo DataFrame v Pythone.

RDD poskytuje bezpečnosť typu kompilácie, ale v RDD neexistuje automatická optimalizácia.

Dataframe poskytuje automatickú optimalizáciu, ale chýba mu bezpečnosť typu kompilácie.

Dataset sa pridáva ako rozšírenie Dataframe. Dataset kombinuje vlastnosti RDD (tj bezpečnosť typu kompilácie) aj Dataframe (tj automatická optimalizácia Spark SQL).

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

Pretože Dataset má bezpečnosť kompilácie, je podporovaný iba v kompilovanom jazyku (Java & Scala), ale nie v interpretovanom jazyku (R & Python). Spark Dataframe API je však k dispozícii vo všetkých štyroch jazykoch (Java, Scala, Python & R) podporovaných programom Spark.

Jazyk podporovaný programom SparkDataframe APIRozhranie API súboru údajov
Zostavený jazyk (Java a Scala)ÁNOÁNO
Tlmočený jazyk (R & Python)ÁNONO

Ako vytvoriť súbor údajov o iskrách?

Existuje niekoľko spôsobov, ako vytvoriť množinu údajov na základe prípadu použitia

1. Najprv vytvorte SparkSession

SparkSession je jediný vstupný bod do iskrovej aplikácie, ktorá umožňuje interakciu so základnými funkciami Spark a programovanie Spark s API DataFrame a Dataset.

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

  • Ak chcete vytvoriť množinu údajov pomocou základnej štruktúry údajov, ako je rozsah, postupnosť, zoznam atď.:

Použitie rozsahu

Použitie sekvencie

Pomocou zoznamu

  • Vytvorenie súboru údajov pomocou postupnosti tried prípadov volaním metódy .toDS ():

  • Postup vytvorenia súboru údajov z RDD pomocou .toDS ():

  • Ak chcete vytvoriť dataset z Dataframe pomocou triedy Case:

  • Ak chcete vytvoriť dataset z Dataframe pomocou Tuples:

2. Operácie na súbore údajov o iskrách

  1. Príklad počtu slov

  1. Preveďte súbor údajov Spark na údajový rámec

Môžeme tiež previesť súbor údajov Spark na Datafame a použiť rozhrania Dataframe API, ako je uvedené nižšie:

Funkcie súboru údajov Spark

  1. Typ Bezpečnosť

Dataset poskytuje bezpečnosť typu kompilácie. To znamená, že syntax, ako aj chyby analýzy aplikácie, sa pred spustením skontrolujú v čase kompilácie.

  1. nemeniteľnosť

Dataset je tiež nemenný ako RDD a Dataframe. To znamená, že nemôžeme zmeniť vytvorený dataset. Zakaždým, keď sa vytvorí nová množina údajov, keď sa na množinu údajov použije akákoľvek transformácia.

  1. schéma

Dataset je tabuľková štruktúra v pamäti, ktorá má riadky a pomenované stĺpce.

  1. Výkon a optimalizácia

Rovnako ako Dataframe, aj Dataset používa Catalyst Optimization na vygenerovanie optimalizovaného plánu logických a fyzických dotazov.

  1. Programovací jazyk

Api súboru údajov je k dispozícii iba v jazyku Java a Scala, čo sú kompilované jazyky, ale nie v jazyku Python, ktorý je interpretovaným jazykom.

  1. Lenivé hodnotenie

Rovnako ako RDD a Dataframe, aj dataset vykonáva lenivé hodnotenie. To znamená, že výpočet sa uskutoční iba vtedy, keď je vykonaná akcia. Spark robí iba plány počas transformačnej fázy.

  1. Serializácia a odvoz odpadu

Súbor údajov o iskrách nepoužíva štandardné serializátory (serializáciu Kryo alebo Java). Namiesto toho používa rýchle snímače Tungsten v pamäti, ktoré chápu vnútornú štruktúru údajov a môžu efektívne transformovať objekty na interné binárne úložisko. Využíva serializáciu údajov mimo haldy pomocou kodéra volfrámu, a preto nie je potrebné zbierať odpadky.

záver

Dataset je to najlepšie z RDD aj Dataframe. RDD poskytuje bezpečnosť typu kompilácie, ale chýba automatická optimalizácia. Dataframe poskytuje automatickú optimalizáciu, ale chýba mu bezpečnosť typu kompilácie. Dataset poskytuje bezpečnosť typu kompilácie, ako aj automatickú optimalizáciu. Z tohto dôvodu je súbor údajov tou najlepšou voľbou pre vývojárov programu Spark používajúci Java alebo Scala.

Odporúčané články

Toto je sprievodca súborom údajov Spark. Tu diskutujeme o tom, ako vytvoriť súbor údajov o iskre rôznymi spôsobmi, s príkladmi a funkciami. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Príkazy Spark Shell
  2. Spark Interview Otázky
  3. Kariéra v iskre
  4. Spark Streaming
  5. Rôzne operácie súvisiace s n-ticami
  6. Spark SQL Dataframe
  7. Typy pripojení v programe Spark SQL (príklady)
  8. Sprievodca zoznamom príkazov shellu Unix
  9. Top 6 komponentov iskry

Kategórie: