R Language
Spark API (SparkR)
Szukaj…
Uwagi
Pakiet SparkR
umożliwia pracę z rozproszonymi ramkami danych na klastrze Spark . Umożliwiają one wykonywanie takich operacji, jak selekcja, filtrowanie, agregacja na bardzo dużych zestawach danych. Omówienie SparkR Dokumentacja pakietu SparkR
Skonfiguruj kontekst Spark
Skonfiguruj kontekst Spark w R.
Aby rozpocząć pracę z rozproszonymi ramkami danych Sparks, musisz połączyć swój program R z istniejącym klastrem Spark.
library(SparkR)
sc <- sparkR.init() # connection to Spark context
sqlContext <- sparkRSQL.init(sc) # connection to SQL context
Oto informacje, jak podłączyć IDE do klastra Spark.
Zdobądź klaster Spark
Istnieje temat wprowadzenia Apache Spark z instrukcjami instalacji. Zasadniczo możesz zatrudniać klaster Spark lokalnie za pośrednictwem java ( patrz instrukcje ) lub używać (niewolnych) aplikacji chmurowych (np. Microsoft Azure [witryna tematyczna] , IBM ).
Dane w pamięci podręcznej
Co:
Buforowanie może zoptymalizować obliczenia w Spark. Buforowanie przechowuje dane w pamięci i jest szczególnym przypadkiem trwałości. Poniżej wyjaśniono, co się dzieje, gdy buforujesz RDD w Spark.
Dlaczego:
Zasadniczo buforowanie zapisuje tymczasowy częściowy wynik - zwykle po transformacji - oryginalnych danych. Tak więc, gdy używasz buforowanego RDD, dostęp do już transformowanych danych z pamięci jest uzyskiwany bez ponownego obliczania wcześniejszych transformacji.
W jaki sposób:
Oto przykład, jak szybko uzyskać dostęp do dużych danych (tutaj 3 GB duże pliki csv) z pamięci w pamięci przy dostępie do nich więcej niż jeden raz:
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 (!!)
Twórz RDD (Resilient Distributed Datasets)
Z ramki danych:
mtrdd <- createDataFrame(sqlContext, mtcars)
Z csv:
W przypadku plików csv należy dodać pakiet csv do środowiska przed zainicjowaniem kontekstu Spark:
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)
Następnie możesz załadować plik csv albo wywnioskując schemat danych z kolumn:
train <- read.df(sqlContext, "/train.csv", header= "true", source = "com.databricks.spark.csv", inferSchema = "true")
Lub określając wcześniej schemat danych:
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)