Поиск…


замечания

Пакет 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)


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow