sparklyr将数据写入hdfs或hive

时间:2017-06-27 21:58:31

标签: sparklyr

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

此致 拉胡

3 个答案:

答案 0 :(得分:5)

使用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")

答案 1 :(得分:1)

从最新版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'
)

另请参见这篇here帖子,我在其中提供了更多选项的信息

答案 2 :(得分:0)

你可以使用sdf_copy_to将数据帧复制到Spark中,比方说tempTable。然后使用DBI::dbGetQuery(sc, "INSERT INTO TABLE MyHiveTable SELECT * FROM tempTable")将数据框记录插入配置单元表中。