【问题标题】:How to refer to a Spark DataFrame by name in sparklyr and assign it to a variable?如何在 sparklyr 中按名称引用 Spark DataFrame 并将其分配给变量?
【发布时间】:2018-08-15 23:50:53
【问题描述】:

假设我运行了以下代码,但忘记将 Spark 数据帧 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

如何将 Spark 数据帧“iris”分配给 R 中名为 iris_tbl 的变量?

【问题讨论】:

    标签: r apache-spark dplyr sparklyr


    【解决方案1】:

    copy_to 提供额外的name 参数默认设置为:

    deparse(substitute(df))
    

    所以在您的情况下,名称将是 iris。如果您想要更可预测的行为,您应该手动设置名称:

    copy_to(sc, iris, name = "foo")
    

    然后你就可以用dplyr的方式访问它了,tbl:

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

    【讨论】:

      猜你喜欢
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      相关资源
      最近更新 更多