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)


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow