Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SparkyR将数据从数据库传输到Spark_R_Apache Spark_Dataframe_Sparklyr - Fatal编程技术网

使用SparkyR将数据从数据库传输到Spark

使用SparkyR将数据从数据库传输到Spark,r,apache-spark,dataframe,sparklyr,R,Apache Spark,Dataframe,Sparklyr,我在数据库中有一些数据,我想在Spark中使用SparkyR处理这些数据 我可以使用基于DBI的包将数据从数据库导入R dbconn <- dbConnect(<some connection args>) data_in_r <- dbReadTable(dbconn, "a table") dbconnSparklyr>=0.6.0 您可以使用spark\u read\u jdbc 0.6.0 我希望有一个更优雅的解决方案,但这里有一个使用低级API的最小示例:

我在数据库中有一些数据,我想在Spark中使用SparkyR处理这些数据

我可以使用基于DBI的包将数据从数据库导入R

dbconn <- dbConnect(<some connection args>)
data_in_r <- dbReadTable(dbconn, "a table") 

dbconnSparklyr>=0.6.0

您可以使用
spark\u read\u jdbc

0.6.0

我希望有一个更优雅的解决方案,但这里有一个使用低级API的最小示例:

  • 确保Spark可以访问所需的JDBC驱动程序,例如通过将其坐标添加到
    Spark.jars.packages
    。例如,对于PostgreSQL(针对当前版本进行调整),您可以添加:

    spark.jars.packages org.postgresql:postgresql:9.4.1212
    
    SPARK\u HOME/conf/SPARK defaults.conf

  • 加载数据并注册为临时视图:

    name <- "foo"
    
    spark_session(sc) %>% 
      invoke("read") %>% 
      # JDBC URL and table name
      invoke("option", "url", "jdbc:postgresql://host/database") %>% 
      invoke("option", "dbtable", "table") %>% 
      # Add optional credentials
      invoke("option", "user", "scott") %>%
      invoke("option", "password", "tiger") %>% 
      # Driver class, here for PostgreSQL
      invoke("option", "driver", "org.postgresql.Driver") %>% 
      # Read and register as a temporary view
      invoke("format", "jdbc") %>% 
      invoke("load") %>% 
      # Spark 2.x, registerTempTable in 1.x
      invoke("createOrReplaceTempView", name)
    
  • 使用
    dplyr
    加载临时视图:

    dplyr::tbl(sc, name)
    
  • 请务必阅读更多JDBC选项,重点是
    partitionColumn
    *Bound
    numPartitions

  • 有关更多详细信息,请参见示例和

invoke("options", as.environment(list(
  user="scott", password="tiger", url="jdbc:..."
)))
dplyr::tbl(sc, name)