
社区贡献
|
223
R 程序包
Spark 扩展
Scala 代码
图
13-1
:使用
Spark API
、
Spark
扩展,或编写
Scala
代码来扩展
Spark
我们会首先关注使用 Spark API 扩展 Spark,因为调用 Spark API 所需的技术也适用于调
用 Spark 扩展或自定义 Scala 代码。
13.2 Spark API
在介绍 Spark API 之前,让我们考虑一个简单而著名的问题。假设我们要计算一个分布式
的、可能很大的文本文件中的行数,例如
cars.csv
中的行数,我们将其初始化如下:
library(sparklyr)
library(dplyr)
sc <- spark_connect(master = "local")
cars <- copy_to(sc, mtcars)
spark_write_csv(cars, "cars.csv")
现在,要计算文件中有多少行,我们可以运行如下代码:
spark_read_text(sc, "cars.csv") %>% count()
# Source: spark<?> [?? x 1]
n
<dbl>
1 33
很简单:我们使用spark_read_text() 读取整个文本文件,然后使用 dplyr 的
count() 计数行。现在,假设 spark_read_text()、dplyr 或任何其他 Spark 功能
都不可用。你会要求 Spark 如何计算
cars.csv
中的行数?
如果在 Scala 中执行此操作,可以在 Spark ...