Spark SQL, DataFrames and Datasets Guide

Spark SQL on Spark-moduuli strukturoitujen tietojen käsittelyyn. Toisin kuin perus Spark RDD API, Spark SQL:n tarjoamat rajapinnat antavat Sparkille enemmän tietoa sekä datan että suoritettavan laskennan rakenteesta. Spark SQL käyttää sisäisesti tätä lisätietoa lisäoptimointeihin. Spark SQL:n kanssa voi olla vuorovaikutuksessa useilla tavoilla, mukaan lukien SQL ja Dataset API. Tulosta laskettaessa käytetään samaa suoritusmoottoria riippumatta siitä, millä API:lla/kielellä laskenta ilmaistaan. Tämä yhtenäistäminen tarkoittaa, että kehittäjät voivat helposti vaihtaa edestakaisin eri API:iden välillä sen mukaan, mikä tarjoaa luonnollisimman tavan ilmaista tietty muunnos.

Kaikki tämän sivun esimerkit käyttävät Spark-jakeluun sisältyviä esimerkkiaineistoja, ja ne voidaan ajaa spark-shell-, pyspark– tai sparkR-kuoressa.

SQL

Yksi Spark SQL:n käyttötapa on SQL-kyselyjen suorittaminen.Spark SQL:ää voidaan käyttää myös tietojen lukemiseen olemassa olevasta Hive-asennuksesta. Lisätietoja tämän ominaisuuden konfiguroinnista on kohdassa Hive-taulukot. Kun suoritatSQL:ää jostain muusta ohjelmointikielestä, tulokset palautetaan Dataset/DataFrame:na.SQL-rajapinnan kanssa voi olla vuorovaikutuksessa myös komentorivillä tai JDBC/ODBC:n kautta.

Datasets and DataFrames

Dataset on hajautettu kokoelma tietoja.Dataset on Spark 1.6:ssa lisätty uusi rajapinta, joka tarjoaa RDD:iden edut (vahva tyypitys, mahdollisuus käyttää tehokkaita lambda-funktioita) Spark SQL:n optimoidun suoritusmoottorin eduilla. Dataset voidaan rakentaa JVM-objekteista ja sitten käsitellä funktionaalisilla muunnoksilla (map, flatMap, filter jne.).Dataset API on saatavilla Scalassa jaJavassa. Pythonissa ei ole tukea Dataset API:lle. Mutta Pythonin dynaamisen luonteen vuoksi monet Dataset API:n eduista ovat jo käytettävissä (esim. voit käyttää rivin kenttää nimen perusteella luonnollisestirow.columnName). R:n tapaus on samanlainen.

A DataFrame on Dataset, joka on järjestetty nimettyihin sarakkeisiin. Se vastaa käsitteellisesti relaatiotietokannan taulukkoa tai R/Pythonin datakehystä, mutta siinä on rikkaampia optimointeja konepellin alla. DataFrame voidaan rakentaa monenlaisista lähteistä, kuten strukturoiduista datatiedostoista, Hive-taulukoista, ulkoisista tietokannoista tai olemassa olevista RDD:istä.DataFrame API on saatavilla Scalassa, Javassa, Pythonissa ja R:ssä.Scalassa ja Javassa DataFrame edustaa Rows:n Datasetia.Scala API:ssa DataFrame on yksinkertaisesti Dataset:n tyyppi alias.Kun taas Java API:ssa käyttäjien on käytettävä Dataset<Row>:tä DataFrame:n esittämiseen.

Tässä dokumentissa viitataan usein Rows:n Scala/Java Dataseteihin DataFrameina.

Vastaa

Sähköpostiosoitettasi ei julkaista.