Sissejuhatus Spark Datasetti

Andmekogum on Spark SQL-i andmestruktuur, mis pakub kompileerimise aja tüüpi turvalisust, objektorienteeritud liidest ja Spark SQL-i optimeerimist.

Kontseptuaalselt on see mälusisene tabelirea, millel on read ja veerud, jaotatud mitme sõlme vahel nagu Dataframe.

See on andmeraami laiendus. Peamine erinevus andmekogu ja DataFrame'i vahel on see, et andmestikud on tugevalt trükitud.

(Andmekogum) = (Dataframe + Compile-Time tüüpi turvalisus)

Andmekomplekt vabastati Spark 1.6-s eksperimentaalse API-na. Nii Dataframe kui ka andmestik on Spark 2.0 versioonis ühendatud ja Dataframe muutub andmestiku (Row) varjunimeks.

Andmeraam = andmekogu (rida)

Miks me Spark-andmestikku vajame?

Et andmestikust aru saada, peame alustama sädeme ja selle arengu natuke ajaloost.

RDD on Sparki tuum. SQL-st inspireeritud ja asja lihtsamaks muutmiseks loodi Dataframe RDD tippu. Dataframe on võrdne relatsiooniandmebaasi tabeliga või Pythoni DataFrame'iga.

RDD pakub kompileerimisaja tüüpi turvalisust, kuid RDD-s puudub automaatne optimeerimine.

Dataframe pakub automaatset optimeerimist, kuid sellel puudub kompileerimisaja turvalisus.

Andmekogum lisatakse andmeraami laiendina. Andmekogum ühendab nii RDD (st kompileerimise aja tüübi turvalisus) kui ka Dataframe'i (st Spark SQL automaatne optimeerimine) funktsioonid.

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

Kuna andmestikul on kompileerimisaegne turvalisus, toetatakse seda seetõttu ainult kompileeritud keeles (Java & Scala), kuid mitte tõlgendatud keeles (R & Python). Kuid Spark Dataframe API on saadaval kõigis neljas keeles (Java, Scala, Python ja R), mida Spark toetab.

Keelt toetab SparkDataframe APIAndmekogumi API
Koostatud keel (Java & Scala)JAHJAH
Tõlgendatud keel (R & Python)JAHEI

Kuidas luua sädemete andmekogumit?

Andmekogu loomiseks kasutusjuhu alusel on mitu viisi

1. Esmalt looge SparkSession

SparkSession on üks sisenemispunkt sädemerakendusele, mis võimaldab suhelda Sparki funktsioonidega ja programmeerida Sparki DataFrame'i ja Dataset API-dega.

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

  • Andmekogu loomiseks põhiandmestruktuuri abil, näiteks vahemik, jada, loend jne:

Range'i kasutamine

Järjestuse kasutamine

Loendi kasutamine

  • Andmekogumi loomiseks juhtumiklasside jada abil, nimetades .toDS () meetodit:

  • Andmekogu loomine RDD-st, kasutades .toDS ():

  • Dataframe'i andmestiku loomiseks Case Classi abil:

  • Dataframe'i andmestiku loomine Tuples abil:

2. Toimingud Spark Dataset-is

  1. Sõnade arvu näide

  1. Teisendage Spark Dataset Dataframe'iks

Samuti võime Sparki andmestiku teisendada Datafame'iks ja kasutada Dataframe'i API-sid järgmiselt:

Spark Dataset'i omadused

  1. Tüüp ohutus

Andmekogu pakub kompileerimisaja tüüpi turvalisust. See tähendab, et süntaksit ja rakenduse analüüsivigu kontrollitakse kompileerimise ajal enne selle käivitamist.

  1. Muutmatus

Andmekomplekt on ka muutumatu, nagu RDD ja Dataframe. See tähendab, et me ei saa loodud andmestikku muuta. Iga kord, kui luuakse uus andmestik, kui sellele komplektile rakendatakse mingeid teisendusi.

  1. Skeem

Andmekomplekt on mälusisene tabelistruktuur, millel on read ja nimetatud veerud.

  1. Toimivus ja optimeerimine

Nagu Dataframe, kasutab andmekogu ka katalüsaatori optimeerimist, et genereerida optimeeritud loogilise ja füüsilise päringukava.

  1. Programmeerimiskeel

Andmekogum api on olemas ainult Java ja Scala puhul, mis on koostatud keeltes, kuid mitte Python'is, mis on tõlgendatav keel.

  1. Laisk hinnang

Nagu RDD ja Dataframe, teostab ka andmestik laiska hindamist. See tähendab, et arvutamine toimub ainult toimingu tegemisel. Spark teeb plaane ainult ümberkujundamisetapis.

  1. Serialiseerimine ja prügivedu

Spark-andmestik ei kasuta standardseid serialiseerijaid (Kryo või Java serialization). Selle asemel kasutab see volframi kiireid sisseehitatud mälukoodereid, mis mõistavad andmete sisemist struktuuri ja suudavad objektid tõhusalt teisendada sisemiseks kahendmäluseadmeks. See kasutab andmete hunnikust väljaserialiseerimist, kasutades volframkooderit, ja seetõttu pole vaja prügi koguda.

Järeldus

Andmekogum on nii RDD kui ka Dataframe parim. RDD pakub kompileerimisaja tüüpi turvalisust, kuid automaatne optimeerimine puudub. Dataframe pakub automaatset optimeerimist, kuid sellel puudub kompileerimisaja turvalisus. Andmekomplekt pakub nii kompileerimise aja tüüpi turvalisust kui ka automaatset optimeerimist. Seega on andmekogu parim valik Sparki arendajatele, kes kasutavad Java või Scala.

Soovitatavad artiklid

See on Spark Dataset juhend. Siin arutleme, kuidas luua sädemete andmekogumit koos näidete ja funktsioonidega mitmel viisil. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Spark Shelli käsud
  2. Spark Intervjuu küsimused
  3. Karjäär Sparkis
  4. Sädeme voogesitus
  5. Tuples seotud erinevad operatsioonid
  6. Spark SQL Dataframe
  7. Spark SQL-i liitumiste tüübid (näited)
  8. Unixi kesta käskude loendi juhend
  9. Sädeme 6 parimat komponenti

Kategooria: