R Language
Spark API (SparkR)
Поиск…
замечания
Пакет SparkR
позволит вам работать с распределенными кадрами данных поверх кластера Spark . Они позволяют выполнять операции, такие как выбор, фильтрация, агрегация на очень больших наборах данных. Обзор SparkR Документация пакета SparkR
Настройка контекста Spark
Настройка контекста Spark в R
Чтобы начать работу с распределенными файловыми кадрами Sparks, вы должны подключить свою R-программу к существующему Spark Cluster.
library(SparkR)
sc <- sparkR.init() # connection to Spark context
sqlContext <- sparkRSQL.init(sc) # connection to SQL context
Вот информация о том, как подключить вашу среду IDE к Spark-кластеру.
Получить искровой кластер
В инструкции по установке есть Apache Spark . В принципе, вы можете использовать Spark Cluster локально через java ( см. Инструкции ) или использовать (несвободные) облачные приложения (например, Microsoft Azure [тема сайта] , IBM ).
Данные кэша
Какие:
Кэширование может оптимизировать вычисления в Spark. Кэширование хранит данные в памяти и является особым случаем сохранения. Здесь объясняется, что происходит, когда вы кешируете RDD в Spark.
Зачем:
В основном кэширование сохраняет промежуточный частичный результат - обычно после преобразований - ваших исходных данных. Таким образом, при использовании кэшированного RDD доступны уже преобразованные данные из памяти, не перераспределяя предыдущие преобразования.
Как:
Вот пример того, как быстро получить доступ к большим данным (здесь 3 ГБ большой csv) из хранилища в памяти при обращении к нему более одного раза:
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 (!!)
Создание RDD (Resilient Distributed Datasets)
Из фрейма данных:
mtrdd <- createDataFrame(sqlContext, mtcars)
Из csv:
Для csv вам нужно добавить пакет csv в среду перед началом контекста 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)
Затем вы можете загрузить csv либо путем вывода схемы данных данных в столбцах:
train <- read.df(sqlContext, "/train.csv", header= "true", source = "com.databricks.spark.csv", inferSchema = "true")
Или, предварительно указав схему данных:
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)