R Language
Spark API (SparkR)
Sök…
Anmärkningar
SparkR
paketet låter dig arbeta med distribuerade dataramar ovanpå ett Spark-kluster . Dessa gör att du kan utföra operationer som val, filtrering, aggregering på mycket stora datasätt. SparkR-översikt SparkR-dokumentation
Konfigurera gnistkontext
Ställ in gnistkontekst i R
För att börja arbeta med Sparks distribuerade dataframe måste du ansluta ditt R-program till ett befintligt gnistkluster.
library(SparkR)
sc <- sparkR.init() # connection to Spark context
sqlContext <- sparkRSQL.init(sc) # connection to SQL context
Här är information om hur du ansluter din IDE till ett gnistkluster.
Skaffa gnistkluster
Det finns ett Apache Spark-introduktionsämne med installationsinstruktioner. I grund och botten kan du anställa ett gnistkluster lokalt via java ( se instruktioner ) eller använda (icke-fria) molnapplikationer (t.ex. Microsoft Azure [ämneswebbplats] , IBM ).
Cache-data
Vad:
Caching kan optimera beräkningen i Spark. Caching lagrar data i minnet och är ett speciellt fall av uthållighet. Här förklaras vad som händer när du cachar en RDD i Spark.
Varför:
I grund och botten sparar cache ett delvis resultat - vanligtvis efter omvandlingar - av dina ursprungliga data. Så när du använder cache-cd-skivan åtkomst till redan transformerade data från minnet utan att beräkna de tidigare transformationerna.
Hur:
Här är ett exempel på hur du snabbt får åtkomst till stora data (här 3 GB stor csv) från minneslagring när du kommer åt dem mer än en gång:
library(SparkR)
# next line is needed for direct csv import:
Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.10:1.4.0" "sparkr-shell"')
sc <- sparkR.init()
sqlContext <- sparkRSQL.init(sc)
# loading 3 GB big csv file:
train <- read.df(sqlContext, "/train.csv", source = "com.databricks.spark.csv", inferSchema = "true")
cache(train)
system.time(head(train))
# output: time elapsed: 125 s. This action invokes the caching at this point.
system.time(head(train))
# output: time elapsed: 0.2 s (!!)
Skapa RDD: er (elastiska distribuerade databas)
Från dataframe:
mtrdd <- createDataFrame(sqlContext, mtcars)
Från csv:
För csv-filer måste du lägga till csv-paketet i miljön innan du startar gnistkontexten :
Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.10:1.4.0" "sparkr-shell"') # context for csv import read csv ->
sc <- sparkR.init()
sqlContext <- sparkRSQL.init(sc)
Sedan kan du ladda csv antingen genom att dra slutsatsen för datainsamlingen i kolumnerna:
train <- read.df(sqlContext, "/train.csv", header= "true", source = "com.databricks.spark.csv", inferSchema = "true")
Eller genom att specificera dataschemat i förväg:
customSchema <- structType(
structField("margin", "integer"),
structField("gross", "integer"),
structField("name", "string"))
train <- read.df(sqlContext, "/train.csv", header= "true", source = "com.databricks.spark.csv", schema = customSchema)