Introduktion till gnistdataset

Dataset är en datastruktur i Spark SQL som tillhandahåller säkerhet för kompileringstid, det objektorienterade gränssnittet samt Spark SQL: s optimering.

Konceptuellt är det en tabellstruktur i minnet med rader och kolumner som är fördelade över flera noder som Dataframe.

Det är en förlängning av Dataframe. Den huvudsakliga skillnaden mellan datasätt och DataFrame är att datasätten är starkt skrivna.

(Dataset) = (Dataframe + säkerhet för kompileringstid)

Dataset släpptes i Spark 1.6 som ett experimentellt API. Både Dataframe och Dataset förenas i Spark 2.0-versionen och Dataframe blir ett alias för Dataset (Row).

Dataframe = Dataset (rad)

Varför behöver vi Spark Dataset?

För att ha en tydlig förståelse av Dataset måste vi börja med lite historia av gnista och dess utveckling.

RDD är kärnan i Spark. Inspirerat av SQL och för att göra det enklare skapades Dataframe på toppen av RDD. Dataframe motsvarar en tabell i en relationsdatabas eller en DataFrame i Python.

RDD tillhandahåller säkerhet för kompileringstiden, men det saknas automatisk optimering i RDD.

Dataframe tillhandahåller automatisk optimering men det saknar kompileringstidssäkerhet.

Dataset läggs till som en förlängning av Dataframe. Dataset kombinerar funktionerna för både RDD (dvs säkerhet för kompileringstiden) såväl som Dataframe (dvs. Spark SQL automatisk optimering).

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

Eftersom Dataset har kompilering av tidssäkerhet stöds det därför endast på ett kompilerat språk (Java & Scala) men inte på ett tolkat språk (R & Python). Men Spark Dataframe API är tillgängligt på alla fyra språk (Java, Scala, Python & R) som stöds av Spark.

Språk som stöds av SparkDataframe APIDataset API
Kompilerat språk (Java & Scala)JAJA
Tolkat språk (R & Python)JANEJ

Hur skapar jag en gnistdataset?

Det finns flera sätt att skapa datasats baserat på användningsfasen

1. Skapa först SparkSession

SparkSession är en enda ingångspunkt till en gnistapplikation som tillåter interaktion med underliggande Spark-funktionalitet och programmering av Spark med DataFrame och Dataset API: er.

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

  • Så här skapar du en dataset med grundläggande datastruktur som Range, Sequence, List, etc:

Använda räckvidd

Med hjälp av sekvens

Använda lista

  • Så här skapar du en datasats med sekvensen av fallklasser genom att ringa .toDS () -metoden:

  • Så här skapar du dataset från RDD med hjälp av .toDS ():

  • Så här skapar du datasatsen från Dataframe med Case Class:

  • Så här skapar du datasatsen från Dataframe med Tuples:

2. Verksamhet på gnistdataset

  1. Exempel på ordräkning

  1. Konvertera Spark Dataset till Dataframe

Vi kan också konvertera Spark Dataset till Datafame och använda Dataframe API: er som nedan:

Funktioner i Spark Dataset

  1. Typ säkerhet

Dataset ger kompileringstidssäkerhet. Det betyder att syntax, såväl som analysfel i applikationen, kommer att kontrolleras vid sammanställningstidpunkten innan den körs.

  1. Oföränderlighet

Dataset är också oföränderligt som RDD och Dataframe. Det betyder att vi inte kan ändra det skapade datasättet. Varje gång en ny datasats skapas när någon omvandling tillämpas på dataset.

  1. schema

Dataset är en tabellstruktur i minnet som har rader och namngivna kolumner.

  1. Prestanda och optimering

Liksom Dataframe använder Datasättet också Catalyst Optimization för att generera en optimerad logisk och fysisk frågeflan.

  1. Programmeringsspråk

Datasättet api finns bara i Java och Scala som är sammanställda språk men inte i Python som är ett tolkat språk.

  1. Lat utvärdering

Liksom RDD och Dataframe utför Dataset också den lata utvärderingen. Det betyder att beräkningen sker bara när åtgärden utförs. Spark planerar endast under omvandlingsfasen.

  1. Serialisering och sopor

Spark-datasättet använder inte standardserier (Kryo- eller Java-serialisering). Istället använder den Tungstens snabba kodare i minnet, som förstår datorns interna struktur och effektivt kan omvandla objekt till intern binär lagring. Den använder datalysering utanför högen med hjälp av Tungsten-kodare och det finns därför inget behov av skräppost.

Slutsats

Dataset är det bästa av både RDD och Dataframe. RDD ger kompileringstidssäkerhet, men det finns ingen automatisk optimering. Dataframe tillhandahåller automatisk optimering men det saknar säkerhet för kompileringstiden. Dataset ger både säkerhet för kompileringstiden såväl som automatisk optimering. Därför är datasatsen det bästa valet för Spark-utvecklare som använder Java eller Scala.

Rekommenderade artiklar

Detta är en guide till Spark Dataset. Här diskuterar vi hur man skapar en gnistdataset på flera sätt med exempel och funktioner. Du kan också titta på följande artiklar för att lära dig mer -

  1. Spark Shell-kommandon
  2. Sparkintervjufrågor
  3. Karriär i Spark
  4. Spark Streaming
  5. Olika operationer relaterade till tuples
  6. Spark SQL Dataframe
  7. Typer av sammanfogningar i Spark SQL (exempel)
  8. Guide till listan över Unix Shell-kommandon
  9. Topp 6 gnistkomponenter

Kategori: