【问题标题】:sparklyr write data to hdfs or hivesparklyr 将数据写入 hdfs 或 hive
【发布时间】:2017-12-01 02:49:55
【问题描述】:

我尝试使用 sparklyr 将数据写入 hdfs 或 hive ,但找不到方法。甚至可以使用 sparklyr 将 R 数据帧写入 hdfs 或 hive 吗?请注意,我的 R 和 hadoop 在两台不同的服务器上运行,因此我需要一种从 R 写入远程 hdfs 的方法。

问候 拉胡尔

【问题讨论】:

  • 你试过在纱线模式下运行 Spark 吗? This 帖子可能会有所帮助。

标签: sparklyr


【解决方案1】:

使用 Sparklyr 将 Spark 表写入配置单元:

iris_spark_table <- copy_to(sc, iris, overwrite = TRUE)
sdf_copy_to(sc, iris_spark_table)
DBI::dbGetQuery(sc, "create table iris_hive as SELECT * FROM iris_spark_table")

【讨论】:

  • 感谢分享。这会将数据加载到 hive 的默认数据库中。您知道如何更改要为其导出文件的 hive 数据库吗?
  • @bshel​​t141 您可以在传递给DBI的SQL中使用语法database.table
【解决方案2】:

从最新的 sparklyr 开始,您可以使用 spark_write_table。传入database.table_name格式指定数据库

iris_spark_table <- copy_to(sc, iris, overwrite = TRUE)
spark_write_table(
  iris_spark_table, 
  name = 'my_database.iris_hive ', 
  mode = 'overwrite'
)

另请参阅此 SO 帖子 here,在那里我获得了有关更多选项的一些意见

【讨论】:

    【解决方案3】:

    您可以使用 sdf_copy_to 将数据帧复制到 Spark,比如说 tempTable。然后使用DBI::dbGetQuery(sc, "INSERT INTO TABLE MyHiveTable SELECT * FROM tempTable") 将dataframe记录插入到hive表中。

    【讨论】:

      猜你喜欢
      • 2019-07-12
      • 2011-08-11
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多