Uvod u svježe skupove podataka

Skup podataka je struktura podataka u Spark SQL-u koja pruža sigurnost tipa kompilacije, objektno orijentirano sučelje kao i Spark SQL optimizaciju.

Konceptualno je to tablična struktura u memoriji koja ima redove i stupce i koja je raspoređena u više čvorova poput Dataframea.

To je proširenje podatkovnog okvira. Glavna razlika između skupa podataka i skupa podataka je da su skupovi podataka snažno tipkani.

(Skup podataka) = (podatkovni okvir + sigurnost vremena kompilacije)

Skup podataka izdan je u Spark 1.6 kao eksperimentalni API. I Dataframe i Skup podataka su ujedinjeni u Spark 2.0 verziji, a Dataframe postaje pseudonim za Dataset (Red).

Dataframe = Skup podataka (redak)

Zašto nam treba Spark Dataset?

Da bismo jasno razumjeli Dataset, moramo započeti s malo povijesti iskre i njenog razvoja.

RDD je srž Iskra. Inspiriran SQL-om i da bi olakšao stvari, Dataframe je stvoren na vrhu RDD-a. Dataframe je ekvivalentan tablici u relacijskoj bazi podataka ili DataFrame na Pythonu.

RDD osigurava sigurnost tipa kompajliranja, ali u RDD-u nema automatske optimizacije.

Dataframe pruža automatsku optimizaciju, ali nedostaje sigurnost vrste kompilacije.

Skup podataka dodan je kao proširenje Dataframe. Skup podataka kombinira značajke i RDD-a (tj. Sigurnost tipa sastavljanja) kao i Dataframe (tj. Spark SQL automatska optimizacija).

(RDD (Spark 1.0)) -> (Okvir podataka (Spark1.3)) -> (Skup podataka (Spark1.6))

Kako Dataset ima sigurnost u kompajliranju, stoga je podržan samo na kompajliranom jeziku (Java & Scala), ali ne i na interpretiranom jeziku (R & Python). No API za podatkovni okvir Spark dostupan je na sva četiri jezika (Java, Scala, Python & R) koje podržava Spark.

Jezik koji podržava SparkAPI podatkovnog okviraAPI skupa podataka
Sastavljeni jezik (Java i skala)DADA
Tumačeni jezik (R & Python)DANE

Kako stvoriti svježinu podataka?

Postoji više načina kreiranja skupa podataka na temelju casecase

1. Prvo stvorite SparkSession

SparkSession je jedina ulazna točka za iskričavu aplikaciju koja omogućuje interakciju s temeljnom funkcionalnošću Spark-a i programiranje Spark-a s API-jem DataFrame i Dataset.

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

  • Za izradu skupa podataka koristeći se osnovnom strukturom podataka poput raspona, slijeda, popisa itd.:

Korištenje raspona

Korištenje slijeda

Korištenje Popisa

  • Za izradu skupa podataka pomoću slijeda klasa slučaja pozivanjem .toDS () metode:

  • Za izradu skupa podataka iz RDD-a pomoću .toDS ():

  • Za izradu skupa podataka iz Dataframe pomoću klase slučaja:

  • Za izradu skupa podataka iz Dataframea pomoću Tuples:

2. Operacije na skupu podataka iskre

  1. Primjer broja riječi

  1. Pretvorite iskrivi skup podataka u podatkovni okvir

Također možemo pretvoriti iskrenje skupa podataka u Datafame i koristiti API-je Dataframe na sljedeći način:

Značajke skupa podataka iskre

  1. Vrsta sigurnosti

Skup podataka pruža sigurnost tipa sastavljanja. To znači da će se sintaksa, kao i pogreške u analizi aplikacije provjeriti u trenutku sastavljanja prije nego što se pokrene.

  1. Nepromjenljivost

Skup podataka je također nepromjenjiv poput RDD i Dataframe. To znači da ne možemo promijeniti stvoreni skup podataka. Svaki put kada se stvori novi skup podataka kada se bilo koja transformacija primijeni na skup podataka.

  1. Shema

Skup podataka je tablična struktura unutar memorije koja ima redove i imenovane stupce.

  1. Performanse i optimizacija

Kao i Dataframe, Skup podataka također koristi Catalyst Optimization za generiranje optimiziranog plana logičkih i fizičkih upita.

  1. Programski jezik

Api baze podataka prisutni su samo u Javi i Scali koji su sabrani jezici, ali ne i na Python-u koji je interpretirani jezik.

  1. Lijena procjena

Kao i RDD i Dataframe, skup podataka također provodi procjenu lijenosti. To znači da se izračunavanje događa samo kad se izvrši radnja. Spark pravi samo planove tijekom faze transformacije.

  1. Serijalizacija i odvoz smeća

Spark skup podataka ne koristi standardne serialize (Kryo ili Java serialization). Umjesto toga, koristi Tungsten-ove brze memorijske enkodere koji razumiju unutarnju strukturu podataka i mogu učinkovito transformirati objekte u unutarnju binarnu pohranu. Koristi izvanserijsku serializaciju podataka pomoću volframovog enkodera i stoga nema potrebe za skupljanjem smeća.

Zaključak

Skup podataka je najbolji i za RDD i za Dataframe. RDD osigurava sigurnost tipa kompilacije, ali nedostaje automatska optimizacija. Dataframe pruža automatsku optimizaciju, ali nedostaje sigurnost vrste kompilacije. Skup podataka pruža sigurnost i način sastavljanja, kao i automatsku optimizaciju. Stoga je skup podataka najbolji izbor za programere Spark koji koriste Java ili Scala.

Preporučeni članci

Ovo je vodič za Spark Dataset. Ovdje smo raspravljali o tome kako stvoriti sjajni skup podataka na više načina s primjerima i značajkama. Možete također pogledati sljedeće članke da biste saznali više -

  1. Naredbe iskre ljuske
  2. Spark Intervju Pitanja
  3. Karijera u Sparku
  4. Streaming iskre
  5. Različite operacije povezane s Tupovima
  6. Spark SQL Dataframe
  7. Vrste pridruživanja u Spark SQL-u (primjeri)
  8. Vodič za popis naredbi Unix Shell
  9. Top 6 komponenti iskre

Kategorija: