1. Learn
  2. /
  3. 课程
  4. /
  5. R 中使用 sparklyr 的 Spark 入门

Connected

道练习

通过抽样缩小数据规模

当您处理一个很大的数据集时,并不需要每次都用到全部数据。尤其在项目的早期阶段,您还在探索要做什么时,先在较小的数据子集上迭代,往往能更快推进。sdf_sample() 提供了一个便捷的方法。它接收一个 tibble,以及要返回的行比例。在本练习中,您需要进行不放回抽样。若要随机抽取数据集的十分之一,可以使用如下代码:

a_tibble %>%
  sdf_sample(fraction = 0.1, replacement = FALSE)

由于抽样结果是随机的,而且您很可能希望复用缩小后的数据集,通常会使用 compute() 将结果存储为另一个 Spark 数据帧。

a_tibble %>%
  sdf_sample(<some args>) %>%
  compute("sample_dataset")

为确保结果可复现,您还可以通过 seed 参数设置随机数种子。这样每次运行代码都会得到相同的随机数据集。种子取值不重要;任选一个您喜欢的正整数即可。

说明

100 XP

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

  • 使用 sdf_sample() 对曲目信息进行 1% 的不放回抽样。
    • 将 20000229 传给 seed 参数以设置随机种子。
  • 计算结果,并将其存入名为 "sample_track_metadata" 的表中。