我尝试使用sparklyr将数据写入hdfs或hive,但无法找到方法。甚至可以使用sparklyr将R数据帧写入hdfs或hive?请注意,我的R和hadoop在两个不同的服务器上运行,因此我需要一种从R写入远程hdfs的方法。
此致 拉胡
答案 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")
将数据框记录插入配置单元表中。