R Language
API Spark (SparkR)
Recherche…
Remarques
Le package SparkR
vous permet de travailler avec des SparkR
données distribués sur un cluster Spark . Celles-ci vous permettent d'effectuer des opérations telles que la sélection, le filtrage et l'agrégation sur des ensembles de données très volumineux. Vue d'ensemble de SparkR Documentation de package SparkR
Configuration du contexte Spark
Configuration du contexte Spark dans R
Pour commencer à travailler avec les cadres de données distribués Sparks, vous devez connecter votre programme R à un cluster Spark existant.
library(SparkR)
sc <- sparkR.init() # connection to Spark context
sqlContext <- sparkRSQL.init(sc) # connection to SQL context
Voici comment vous connecter votre IDE à un cluster Spark.
Get Spark Cluster
Il existe un sujet d’introduction à Apache Spark avec des instructions d’installation. Fondamentalement, vous pouvez utiliser un cluster Spark localement via java ( voir les instructions ) ou utiliser des applications cloud (non gratuites) (par exemple Microsoft Azure [site de rubrique] , IBM ).
Données de cache
Quelle:
La mise en cache peut optimiser le calcul dans Spark. La mise en cache stocke les données en mémoire et constitue un cas particulier de persistance. Ici, on explique ce qui se passe lorsque vous cachez un RDD dans Spark.
Pourquoi:
Fondamentalement, la mise en cache enregistre un résultat partiel provisoire - généralement après les transformations - de vos données d'origine. Ainsi, lorsque vous utilisez le RDD en cache, les données déjà transformées de la mémoire sont accessibles sans recalculer les transformations antérieures.
Comment:
Voici un exemple d’accès rapide aux données volumineuses (ici, gros csv de 3 Go) à partir du stockage en mémoire lorsque vous y accédez plus d’une fois:
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 (!!)
Créer des RDD (Dataset Distributed Resetient)
À partir de dataframe:
mtrdd <- createDataFrame(sqlContext, mtcars)
De csv:
Pour csv, vous devez ajouter le package csv à l'environnement avant de lancer le contexte 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)
Ensuite, vous pouvez charger le csv soit en inférant le schéma de données des données dans les colonnes:
train <- read.df(sqlContext, "/train.csv", header= "true", source = "com.databricks.spark.csv", inferSchema = "true")
Ou en spécifiant au préalable le schéma de données:
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)