【发布时间】:2020-06-03 11:27:22
【问题描述】:
假设我有一个查询(字符串)存储在名为my_query 的 R 对象中。我想在我的 Spark 上下文中执行这个查询。我首先在我的 Spark 上下文中注册了一些表。
my_table <- sparklyr::spark_read_orc(
sc,
name = "my_table",
path = "wasbs://my_table",
memory = FALSE
)
现在我执行我的查询。
my_query %>%
dplyr::sql() %>%
dplyr::tbl(sc, .) %>%
sparklyr::spark_write_orc(path = "result_path", mode = "overwrite")
tbl() 函数在这里的具体作用是什么?这里的tbl() 函数是否将数据带入 Spark 内存?即查询是否仍然延迟评估?这是否取决于查询的类型?例如,我想简单的 SELECT 和 WHERE 语句不需要将数据带入内存,但如果您以某种形式的 dplyr::mutate()(或等效的 SQL 代码)创建新列,则需要带到记忆中了吗?
【问题讨论】:
标签: r apache-spark tidyverse sparklyr