Spark 和 PySpark 的新手,我试图通过在另一个 DataFrame 中查找信息来在 DataFrame 中添加一个字段/列。在过去的几个小时里,我一直在尝试阅读 RDD、DataFrame、DataSet、map、join 等,但这些概念对我来说仍然是新的,我仍然很难完全理解它们。
例如,给定以下带有 ID 和角色的输入 DataFrame:
+----+-------------+
| ID | Role |
+----+-------------+
| 1 | Author |
| 1 | Editor |
| 2 | Author |
| 2 | Publisher |
| 3 | Editor |
| 3 | Assistant |
+----+-------------+
另一个输入 DataFrame 具有唯一的 ID 和名称映射:
+----+-------------+
| ID | Name |
+----+-------------+
| 1 | John Smith |
| 2 | John Doe |
| 3 | Bob Jim Bob |
+----+-------------+
我需要以某种方式将此数据合并到单个输出 DataFrame 中,并添加 Name 列,如下所示:
+----+-------------+-------------+
| ID | Name | Role |
+----+-------------+-------------+
| 1 | John Smith | Author |
| 1 | John Smith | Editor |
| 2 | John Doe | Author |
| 2 | John Doe | Publisher |
| 3 | Bob Jim Bob | Editor |
| 3 | Bob Jim Bob | Assistant |
+----+-------------+-------------+
两个输入表的实际数据量约为 200k+ 行。
我最初的想法是在 ID + Role 表中添加一个新的 Name 列,然后遍历每一行并手动从 ID + Name 表中查找 Name 但这真的很慢,我肯定无法利用火花。
再说一次,对这一切仍然很陌生,所以如果这是一个非常明显的问题,请原谅我。
九州编程
相关分类