如何在SparkyR中按名称引用Spark数据帧并将其分配给变量?

如何在SparkyR中按名称引用Spark数据帧并将其分配给变量?,r,apache-spark,dplyr,sparklyr,R,Apache Spark,Dplyr,Sparklyr,假设我运行了以下代码,但我忘记将Spark dataframeiris分配给R中的一个变量,我无法使用.Last.value进行分配,因为我在将数据复制到Spark后立即运行了一些其他代码 library(sparklyr) library(dplyr) sc <- spark_connect(master = "local") copy_to(sc, iris) 2+2 # ran some other code so can't use .Last.value 库(年) 图书馆(dp

假设我运行了以下代码,但我忘记将Spark dataframe
iris
分配给R中的一个变量,我无法使用
.Last.value
进行分配,因为我在将数据复制到Spark后立即运行了一些其他代码

library(sparklyr)
library(dplyr)
sc <- spark_connect(master = "local")
copy_to(sc, iris)
2+2 # ran some other code so can't use .Last.value
库(年)
图书馆(dplyr)

sc
copy_to
提供附加的
名称
参数默认设置为:

deparse(substitute(df))
因此,在您的情况下,名称将是
iris
。如果想要更可预测的行为,应手动设置名称:

copy_to(sc, iris, name = "foo")
然后您可以使用
tbl
dplyr
方式访问它:

dplyr::tbl(sc, "foo")
或通过Spark会话:

sc %>% spark_session() %>% invoke("table", "foo") %>% sdf_register()
所有生产就绪的阅读器方法(
copy_to
不应被用作测试和开发工具以外的任何工具)都需要
name
,因此您可以以相同的方式引用表

spark_read_csv(sc, "bar", path)
tbl(sc, "bar")