1. 학습
  2. /
  3. 강의
  4. /
  5. R 中使用 sparklyr 的 Spark 入门

Connected

연습 문제

Common people

distinct() 函数可以查看唯一值。有时了解每个值各有多少也很有用。base R 的对应函数是 table();它在 sparklyr 中不受支持,因为它不符合 tidyverse 将一切都保持为 tibble 的理念。相应地,您需要使用 count()。使用时传入未加引号的列名。例如,要统计列 x、y 和 z 的不同组合出现的次数,可以这样写:

a_tibble %>%
  count(x, y, z)

其结果与下面相同:

a_tibble %>%
  distinct(x, y, z)

……不同之处在于会多出一列 n,其中包含计数。

count() 的一个很好用的场景是获取某个字段最常见的取值。做法是先调用 count(),并传入参数 sort = TRUE,按 n 列的降序排列行,然后使用 slice_max() 将结果限制为前若干个值。(slice_max() 类似于 base R 的 head(),但它可用于 Spark 等远程数据集。)例如,要获取列 x、y 和 z 最常见的 20 种组合,可以这样写:

a_tibble %>%
  count(x, y, z, sort = TRUE) %>%
  slice_max(20)

지침

100 XP

已为您创建名为 spark_conn 的 Spark 连接。与存储在 Spark 中的曲目信息相关联的 tibble 已预定义为 track_metadata_tbl。

  • 统计 track_metadata_tbl 中 artist_name 列的取值计数。
    • 传入 sort = TRUE,按受欢迎程度降序排列行。
  • 使用 slice_max() 将结果限制为前 20 个。