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

Connected

Exercise

训练/测试集划分

在大多数情况下,当您运行预测模型时,需要先在数据的一个子集("训练"集)上拟合模型,然后再用其余数据("测试"集)来检验模型的预测效果。

sdf_random_split() 提供了一种将数据框划分为训练集和测试集的方法。其用法如下所示。

a_tibble %>%
  sdf_random_split(training = 0.7, testing = 0.3)

这里有两点需要注意。首先,如果各分区的取值之和不等于 1,这些数值会被按比例缩放为和为 1。因此,如果传入 training = 0.35 和 testing = 0.15,最终得到的比例会是您请求的两倍。其次,您可以使用任意的集合名称,并且可以将数据划分为两个以上的集合。因此,下面的写法也是有效的。

a_tibble %>%
  sdf_random_split(a = 0.1, b = 0.2, c = 0.3, d = 0.4)

返回值是一个 tibble 列表。您可以使用常见的列表索引运算符访问各个元素。

partitioned$a
partitioned[["b"]]

Instructions

100 XP

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

  • 使用 sdf_random_split() 对曲目信息进行划分。
    • 将 70% 放入名为 training 的集合。
    • 将 30% 放入名为 testing 的集合。
  • 获取训练 tibble 的 sdf_dim() 结果(维度)。
  • 获取测试 tibble 的维度。