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)


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow