1. Learn
  2. /
  3. คอร์ส
  4. /
  5. R 中使用 sparklyr 的 Spark 入门

Connected

แบบฝึกหัด

筛选行

除了选择列之外,提取数据集中关键信息的另一种方式是筛选行。这可以通过 filter() 函数完成。要使用 filter(),需要传入一个 tibble 和若干逻辑条件。例如,若只返回列 x 的值大于 0 且 y 的值等于 z 的行,您可以这样写:

a_tibble %>%
  filter(x > 0, y == z)

在开始练习之前,请注意两个提示。首先,不要把 dplyr 的 filter() 与 stats 包的 filter() 混淆。其次,sparklyr 会在把代码发送到 Spark 之前,将您的 dplyr 代码转换为 SQL 数据库代码。这意味着目前仅支持有限的筛选操作。例如,您不能使用如下代码通过正则表达式筛选字符行:

a_tibble %>%
  filter(grepl("a regex", x))

translate_sql() 的帮助页面说明了可用的功能。您可以放心使用比较运算符,如 >、!= 和 %in%;算术运算符,如 +、^ 和 %%;以及逻辑运算符,如 &、| 和 !。许多数学函数也受支持,例如 log()、abs()、round() 和 sin()。

与之前一样,方括号索引目前不可用。

คำแนะนำ

100 XP

已经为您创建了名为 spark_conn 的 Spark 连接。基于存储在 Spark 中的曲目信息,已预定义了一个名为 track_metadata_tbl 的 tibble。

  • 与上一个练习相同,使用 select() 选择 artist_name、release、title 和 year。
  • 将结果管道到 filter() 中,筛选出 1960 年代的曲目。