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

Connected

道练习

Left joins

除了操作单个数据框,sparklyr 还允许您将两个数据框连接在一起。关于如何使用 dplyr 语法连接表的完整讲解,请参见课程 Joining Data with dplyr。在本章余下内容中,您将看到一些在 Spark 中实现这一操作的示例。

左连接会取第一个表中的所有值,并在第二个表中查找匹配项。若找到匹配,就添加第二个表中的数据;若未找到,则填充缺失值。其原理如下图所示。

A left join, explained using table of colors.

左连接是一种变更式连接(mutating join),因为它只是向第一个表添加新列。要在 sparklyr 中执行左连接,调用 left_join(),传入两个 tibble,以及用于连接的列名字符向量。

left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))

用文字描述这种连接时,表名的顺序会反过来。上述连接可表述为:"another_tibble 被左连接到 a_tibble"。

本练习引入了另一个 Spark DataFrame,包含描述每位艺术家的术语。这些术语从较为通用的 "pop",到更小众的风格,如 "swiss hip hop" 和 "mathgrindcore",不一而足。

说明

100 XP

已经为您创建了名为 spark_conn 的 Spark 连接。存储在 Spark 中的曲目信息和艺术家术语分别已作为 tibble 预定义为 track_metadata_tbl 和 artist_terms_tbl。

  • 使用左连接,以 artist_id 列为键,将艺术家术语连接到曲目信息上。
    • 被连接的表 track_metadata_tbl 放在第一个参数。
    • 连接到第一个表的表 artist_terms_tbl 放在第二个参数。
    • 将结果赋值给 joined。
  • 使用 sdf_dim() 查看连接后的表有多少行和多少列。