je peux me connecter à MongoDB de SparkR (j'utilise R Studio, Spark 2.x.x, connecteur Mongo v2.0) comme décrit ici https://docs.mongodb.com/spark-connector/current/r-api/. Je voudrais faire la même chose avec SparklyR, est-ce possible? Impossible de trouver des exemples pour cela.est-il possible de se connecter à mongodb de SparklyR
0
A
Répondre
0
J'essaye aussi de charger du mongo en utilisant sparklyr. Je ne l'ai pas trouvé une solution encore, mais c'est ce que je l'ai essayé jusqu'à présent (ma base de données est « nasa » et la collection est « eva »):
library(sparklyr)
spark_home <- "/home/my_user_name/Workspaces/Mongo/spark-2.0.1-bin-hadoop2.7/"
Sys.setenv(SPARK_HOME=spark_home)
config <- sparklyr::spark_config()
config$sparklyr.defaultPackages <- c("org.mongodb.spark:mongo-spark-connector_2.10:1.1.0")
config$spark.mongodb.input.uri <- "mongodb://localhost:27017/nasa.eva"
config$spark.mongodb.output.uri <- "mongodb://localhost:27017/nasa.eva"
Spark.connection <<- sparklyr::spark_connect(master = "local", version = "2.0.1", config = config)
Spark.session <<- sparklyr::invoke_static(Spark.connection, "org.apache.spark.sql.SparkSession", "builder") %>% sparklyr::invoke("config", "spark.cassandra.connection.host", "localhost") %>% sparklyr::invoke("getOrCreate")
uri <- "mongodb://localhost/nasa.eva"
load <- invoke(Spark.session, "read") %>% invoke("format", "com.mongodb.spark.sql.DefaultSource") %>% invoke("option", "spark.mongodb.input.uri", uri) %>% invoke("option", "keyspace", "nasa") %>% invoke("option", "table", "eva") %>% invoke("load")
tbl <- sparklyr:::spark_partition_register_df(Spark.connection, load, "mongo_tbl", 0, TRUE)
Il ne fonctionne pas encore, mais peut-être donner vous quelques idées. J'espère que cela aide
0
Enfin, il semble qu'il est possible, mais il est un moyen plus facile en installant la version de développement de sparklyr:
devtools::install_github("rstudio/sparklyr")
suivi par:
config <- spark_config()
config$sparklyr.defaultPackages <- c("org.mongodb.spark:mongo-spark-connector_2.10:1.1.0")
sc <- spark_connect(master = "local", config = config)
uri <- "mongodb://localhost/nasa.eva"
spark_read_source(
sc,
"spark-table-name",
"com.mongodb.spark.sql.DefaultSource",
list(
spark.mongodb.input.uri = uri,
keyspace = "nasa",
table = "eva"),
memory = FALSE)
"nasa" et "eva" sont la base de données mongo et la collection mongo, respectivement. Vous pouvez trouver plus d'informations here, sur le forum sparklyr github. J'espère que cela aide!