Johdanto Spark-tietojoukkoon

Dataset on Spark SQL: n tietorakenne, joka tarjoaa käännösaikaistyyppisen turvallisuuden, oliokeskeisen käyttöliittymän sekä Spark SQL: n optimoinnin.

Käsitteellisesti se on muistissa oleva taulukkorakenne, jossa on rivejä ja sarakkeita ja joka on jaettu useille solmuille, kuten Dataframe.

Se on tietokehyksen jatko. Tärkein ero tietojoukon ja DataFrame-kehyksen välillä on, että tietojoukot on kirjoitettu voimakkaasti.

(Tietojoukko) = (Dataframe + Compile-Time -tyyppinen turvallisuus)

Dataset julkaistiin Spark 1.6: ssa kokeellisena sovellusliittymänä. Sekä Dataframe että Dataset ovat yhtenäisiä Spark 2.0 -versiossa ja Dataframeista tulee aliaksen Dataset (Row).

Tietokehys = tietojoukko (rivi)

Miksi tarvitsemme Spark-tietojoukkoa?

Jotta voimme ymmärtää tietojoukon selkeästi, meidän on aloitettava hiukan kipinän historiasta ja sen kehityksestä.

RDD on Sparkin ydin. SQL: n innoittamana ja asioiden helpottamiseksi Dataframe luotiin RDD: n päälle. Dataframe vastaa taulukkoa relaatiotietokannassa tai DataFrame Pythonissa.

RDD tarjoaa käännösajan tyyppisen turvallisuuden, mutta RDD: ssä ei ole automaattista optimointia.

Dataframe tarjoaa automaattisen optimoinnin, mutta siitä puuttuu käännösajan tyyppinen turvallisuus.

Tietojoukko lisätään tietokehyksen jatkeena. Tietojoukossa yhdistyvät sekä RDD: n (ts. Kopiotyyppiturvallisuus) että Dataframen (eli Spark SQL automaattinen optimointi) ominaisuudet.

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

Koska Datasetilla on käännösaikainen turvallisuus, sitä tuetaan siksi vain käännetyllä kielellä (Java & Scala), mutta ei tulkitulla kielellä (R & Python). Mutta Spark Dataframe -sovellusliittymä on saatavana kaikilla neljällä kielellä (Java, Scala, Python & R), joita Spark tukee.

Kieli tukee SparkDataframe-sovellusliittymäDataset API
Käännetty kieli (Java & Scala)JOOJOO
Tulkattu kieli (R & Python)JOOEI

Kuinka luoda Spark-tietojoukko?

Dataset voidaan luoda usealla tapaa käyttöesityksen perusteella

1. Luo ensin SparkSession

SparkSession on yksi syöttökohta kipinäsovellukseen, joka mahdollistaa vuorovaikutuksen taustalla olevien Spark-toimintojen kanssa ja Sparkin ohjelmoinnin DataFrame- ja Dataset-sovellusliittymien kanssa.

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

  • Tietojoukon luominen käyttämällä perustietorakennetta, kuten alue, sekvenssi, luettelo jne.:

Range-toiminnon käyttäminen

Sekvenssin käyttäminen

Luettelon käyttäminen

  • Tietojoukon luominen tapausluokan avulla käyttämällä .toDS () -menetelmää:

  • Tietojoukon luominen RDD: stä .toDS ():

  • Tietoaineiston luominen Dataframe-sovelluksesta tapausluokan avulla:

  • Tietoaineiston luominen Dataframe-sovelluksesta Tuplesin avulla:

2. Toiminnot Spark-tietojoukossa

  1. Esimerkki sanamäärästä

  1. Muunna Spark Dataset datakehykseksi

Voimme myös muuntaa Spark-tietojoukon Datafameksi ja käyttää Dataframe-sovellusliittymiä kuten alla:

Spark Datasetin ominaisuudet

  1. Tyyppi Turvallisuus

Dataset tarjoaa käännösajan tyyppistä turvallisuutta. Se tarkoittaa, että syntaksi sekä sovelluksen analyysivirheet tarkistetaan käännöshetkellä ennen sen suorittamista.

  1. muuttumattomuudesta

Dataset on myös muuttumaton, kuten RDD ja Dataframe. Se tarkoittaa, että emme voi muuttaa luotua tietojoukkoa. Aina kun uusi tietojoukko luodaan, kun tietokantaan tehdään muutoksia.

  1. kaavio

Tietojoukko on muistissa oleva taulukkorakenne, jossa on rivejä ja nimettyjä sarakkeita.

  1. Suorituskyky ja optimointi

Kuten Dataframe, myös datajoukko käyttää Catalyst Optimization -sovellusta optimoidun loogisen ja fyysisen kyselysuunnitelman luomiseen.

  1. Ohjelmointikieli

Tietosarjan api esiintyy vain Java- ja Scala-kielillä, jotka ovat käännettyjä kieliä, mutta ei Pythonissa, joka on tulkittu kieli.

  1. Laiska arviointi

Kuten RDD ja Dataframe, myös datajoukko suorittaa laiska arvioinnin. Se tarkoittaa, että laskenta tapahtuu vain, kun toiminta suoritetaan. Spark tekee vain suunnitelmia muutosvaiheen aikana.

  1. Sarjakuvaus ja jätteiden keruu

Spark-tietojoukossa ei käytetä tavanmukaisia ​​sarjanmittajia (Kryo tai Java-sarjanumerointi). Sen sijaan se käyttää Tungstenin nopeaa muistilaitteita, jotka ymmärtävät datan sisäisen rakenteen ja voivat muuttaa objektit tehokkaasti sisäisiksi binaarisäilöiksi. Se käyttää ulkopuolista data-sarjoittelua volframianturilla, joten roskien keräämistä ei tarvita.

johtopäätös

Dataset on paras sekä RDD: stä että Dataframe-kehyksestä. RDD tarjoaa käännösajan tyyppisen turvallisuuden, mutta automaattista optimointia ei ole. Dataframe tarjoaa automaattisen optimoinnin, mutta siitä puuttuu käännösajan tyyppinen turvallisuus. Dataset tarjoaa sekä käännösajan tyyppisen turvallisuuden että automaattisen optimoinnin. Siksi aineisto on paras valinta Spark-kehittäjille, jotka käyttävät Java- tai Scalaa.

Suositellut artikkelit

Tämä on Spark Dataset -oppaan opas. Tässä keskustellaan kuinka luodaan Spark Dataset monella tapaa esimerkkien ja ominaisuuksien avulla. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Spark Shell -komennot
  2. Spark-haastattelukysymykset
  3. Ura Sparkissa
  4. Spark streaming
  5. Eri Tuplesiin liittyvät operaatiot
  6. Spark SQL Dataframe
  7. Spark SQL: n liitostyypit (esimerkit)
  8. Opas Unix-kuorikomentojen luetteloon
  9. 6 suosituinta kipinän komponenttia

Luokka: