1. Learn
  2. /
  3. कोर्स
  4. /
  5. R 中使用 sparklyr 的 Spark 入门

Connected

अभ्यास

排序 vs. 安排

到目前为止,您已经探索了 Spark 的 MLlib 中的一些特征变换函数。sparklyr 还提供了对使用 Spark DataFrame API 的一些函数的访问。

在 dplyr 中对 tibble 排序,通常使用 arrange()。您也可以使用 Spark 的 DataFrame API 通过 sdf_sort() 来为 tibble 排序。该函数接收一个由列名组成的字符向量,目前仅支持升序排序。

例如,若要先按列 x 排序,然后在出现并列时按 y,再按 z,下面的代码对比了 dplyr 与 Spark DataFrame 的两种做法。

a_tibble %>%
  arrange(x, y, z)
a_tibble %>%
  sdf_sort(c("x", "y", "z"))

想要比较哪种方法更快,请同时尝试 arrange() 和 sdf_sort()。您可以通过将代码包裹在同名包提供的 microbenchmark() 中来查看其运行耗时。

microbenchmark({
  # your code
})

关于如何分析代码运行速度,您可以在课程 Writing Efficient R Code 中学习更多内容。

निर्देश

100 XP

我们已为您创建了名为 spark_conn 的 Spark 连接。存储在 Spark 中的曲目信息已作为 tibble 预定义为 track_metadata_tbl。

  • 使用 microbenchmark() 比较以下操作所用时间:
    • 使用 arrange() 按 year、artist_name、release、title 的顺序对 track_metadata_tbl 的行进行排序。
    • 收集结果。
    • 再做一次相同的事情,但这次用 sdf_sort() 来替代 arrange()。请记得为列名加引号。