开始使用免费开始使用

Common people

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

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 等远程数据集。)例如,要获取列 xyz 最常见的 20 种组合,可以这样写:

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

本练习是课程的一部分

R 中使用 sparklyr 的 Spark 入门

查看课程

练习说明

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

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

交互式实操练习

通过完成这段示例代码来试试这个练习。

# track_metadata_tbl has been pre-defined
track_metadata_tbl

track_metadata_tbl %>%
  # Count the artist_name values
  ___ %>%
  # Restrict to top 20
  ___
编辑并运行代码