Uvod v sveženj podatkov Spark

Niz podatkov je struktura podatkov v Spark SQL, ki zagotavlja varnostno vrsto v času prevajanja, objektno usmerjen vmesnik in optimizacijo Spark SQL.

Konceptualno je tabelarna struktura v spominu, ki vsebuje vrstice in stolpce, ki je razporejena po več vozliščih, kot je Dataframe.

Je razširitev podatkovnega okvira. Glavna razlika med naborom podatkov in DataFrame je, da so nabori podatkov močno vtipkani.

(Niz podatkov) = (Dataframe + Varnost vrste kompilacije)

Skupina podatkov je bila izdana v Spark 1.6 kot eksperimentalni API. Dataframe in Dataset sta združena v različici Spark 2.0 in Dataframe postane vzdevek za nabor podatkov (vrstica).

Dataframe = Niz podatkov (vrstica)

Zakaj potrebujemo Spark Dataset?

Če želimo jasno razumeti nabor podatkov, moramo začeti z malo zgodovine iskre in njenega razvoja.

RDD je jedro iskre. Navdih za SQL in za lažje stvari je bil Dataframe ustvarjen na vrhu RDD. Podatkovni okvir je enakovreden tabeli v relacijski bazi podatkov ali DataFrame v Python-u.

RDD zagotavlja varnost v času prevajanja, vendar v RDD ni samodejne optimizacije.

Podatkovni okvir omogoča samodejno optimizacijo, vendar nima varnosti glede na čas sestavljanja.

Nabor podatkov je dodan kot razširitev podatkovnega okvira. Nabor podatkov združuje funkcije tako RDD (tj. Varnost tip-čas prevajanja) kot tudi Dataframe (tj. Samodejna optimizacija Spark SQL).

(RDD (Spark 1.0)) -> (Podatkovni okvir (Spark1.3)) -> (Skup podatkov (Spark1.6))

Ker je Dataset varnost v času sestavljanja, je zato podprt le v sestavljenem jeziku (Java & Scala), ne pa tudi v interpretiranem jeziku (R & Python). Toda API za podatkovni okvir Spark je na voljo v vseh štirih jezikih (Java, Scala, Python & R), ki jih podpira Spark.

Jezik, ki ga podpira SparkAPI za podatkovni okvirAPI za nabor podatkov
Sestavljen jezik (Java in Scala)DADA
Interpretirani jezik (R & Python)DANE

Kako ustvariti niz podatkov o iskri?

Obstaja več načinov za ustvarjanje nabora podatkov na podlagi uporabe

1. Najprej ustvarite SparkSession

SparkSession je enotna točka za aplikacijo iskre, ki omogoča interakcijo z osnovno funkcionalnostjo Spark in programiranje Spark z API-ji DataFrame in Dataset.

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

  • Če želite ustvariti nabor podatkov z uporabo osnovne podatkovne strukture, kot so obseg, zaporedje, seznam itd.:

Uporaba Range

Uporaba zaporedja

Uporaba seznama

  • Če želite ustvariti nabor podatkov z zaporedjem razredov primerov s klicanjem .toDS () metode:

  • Če želite ustvariti nabor podatkov iz RDD z uporabo .toDS ():

  • Če želite ustvariti nabor podatkov iz Dataframe z uporabo Case Class:

  • Če želite ustvariti nabor podatkov iz podatkovnega okvira s Tuples:

2. Operacije v svežnju podatkov Spark

  1. Primer števila besed

  1. Pretvorite svežino podatkovnih nizov v podatkovni okvir

Prav tako lahko pretvorimo Spark Dataset v Datafame in uporabimo API-je Dataframe, kot je spodaj:

Značilnosti nabora podatkov Spark

  1. Vrsta Varnost

Podatkovni niz zagotavlja varnost v času prevajanja. To pomeni, da se bo sintaksa, pa tudi napake v analizi aplikacije preverile v času prevajanja, preden se zažene.

  1. Neizmenljivost

Nabor podatkov je tudi nespremenljiv kot RDD in Dataframe. Pomeni, da ustvarjenega nabora podatkov ne moremo spremeniti. Vsakič, ko se ustvari nov nabor podatkov, ko se katera koli preobrazba uporabi na naboru podatkov.

  1. Shema

Nabor podatkov je tabelarna struktura v spominu, ki ima vrstice in imenovane stolpce.

  1. Uspešnost in optimizacija

Podobno kot Dataframe tudi Skup podatkov uporablja optimizacijo katalizatorjev za ustvarjanje optimiziranega načrta logičnih in fizičnih poizvedb.

  1. Programski jezik

Nabor podatkov api je prisoten samo v Javi in ​​Scali, ki sta sestavljena jezika, ne pa tudi v Python-u, ki je interpretiran jezik.

  1. Leno vrednotenje

Tako kot RDD in Dataframe tudi Skupina podatkov izvaja leno vrednotenje. Pomeni, da se izračun zgodi le, ko se izvede dejanje. Spark načrtuje samo v fazi transformacije.

  1. Serializacija in odvoz smeti

Nabor podatkov o iskri ne uporablja standardnih serializatorjev (Kryo ali Java serializacija). Namesto tega uporablja Tungsten-ove hitre kodre v pomnilniku, ki razumejo notranjo strukturo podatkov in lahko učinkovito pretvorijo predmete v notranje binarno shrambo. Uporablja se serijsko obdelavo podatkov s pomočjo volframovega dajalnika, zato ni treba zbirati smeti.

Zaključek

Nabor podatkov je najboljši tako za RDD kot za Dataframe. RDD zagotavlja varnost tip-čas, vendar ni samodejne optimizacije. Podatkovni okvir omogoča samodejno optimizacijo, vendar nima varnosti glede na čas sestavljanja. Podatkovni niz zagotavlja tako varnost v času sestavljanja kot tudi samodejno optimizacijo. Zato je nabor podatkov najboljša izbira za razvijalce Spark, ki uporabljajo Java ali Scala.

Priporočeni članki

To je vodnik za Spark Dataset. Tukaj razpravljamo, kako na več načinov ustvariti sveženj podatkovnih nizov s primeri in funkcijami. Za več informacij si lahko ogledate tudi naslednje članke -

  1. Iskreni ukazi lupine
  2. Spark Intervju Vprašanja
  3. Poklic v Iskri
  4. Iskrivo pretakanje
  5. Različne operacije povezane s Tuplemi
  6. Spark Dataframe SQL
  7. Vrste združitev v Spark SQL (primeri)
  8. Vodnik po seznamu ukazov školjke Unix
  9. Top 6 komponent iskre

Kategorija: