【发布时间】:2017-07-14 00:46:13
【问题描述】:
如果我连接到 Spark 集群,将一些数据复制到其中,然后断开连接,...
library(dplyr)
library(sparklyr)
sc <- spark_connect("local")
copy_to(sc, iris)
src_tbls(sc)
## [1] "iris"
spark_disconnect(sc)
那么下次连接Spark时,数据就不存在了。
sc <- spark_connect("local")
src_tbls(sc)
## character(0)
spark_disconnect(sc)
这与使用数据库的情况不同,无论连接多少次,数据都在那里。
如何在 Spark 集群中的连接之间持久化数据?
我认为sdf_persist() 可能是我想要的,但似乎不是。
【问题讨论】:
-
这是因为数据不会在不同的 spark 会话中持续存在,如果您断开连接然后重新连接,就会发生这种情况。
-
@mtoto 谢谢。所以当你断开连接时没有办法让会话保持活动状态?
-
你可以试试
sdf_persist(storage.level = "DISK_ONLY")吗?我不确定它是否会起作用。老实说,我从来没有用火花尝试过 -
@RichieCotton 可能只是
"local"模式下的问题。但是要连接到远程集群,您还需要在集群上安装 rstudio 服务器。 -
@Alex 集群之间没有永久性。人们似乎只是让集群无限期地运行,或者使用
spark_write_parquet()和spark_read_parquet()保存/重新加载他们的数据集(比copy_to()快得多)。