对于Spark和PySpark来说是个新手,我试图通过在另一个数据帧中查找信息来在数据帧中添加一个字段/列。在过去的几个小时里,我一直在努力阅读RDD、数据帧、数据集、映射、连接等,但这些概念对我来说仍然是新的,我仍然很难弄清楚它们的头绪。你知道吗
例如,给定以下带有ID和角色的输入数据帧:
+----+-------------+
| ID | Role |
+----+-------------+
| 1 | Author |
| 1 | Editor |
| 2 | Author |
| 2 | Publisher |
| 3 | Editor |
| 3 | Assistant |
+----+-------------+
另一个输入数据帧具有唯一的ID和名称映射:
+----+-------------+
| ID | Name |
+----+-------------+
| 1 | John Smith |
| 2 | John Doe |
| 3 | Bob Jim Bob |
+----+-------------+
我需要以某种方式将这些数据合并到一个单独的输出数据框中,并添加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表中手动查找名称,但这确实很慢,而且我肯定无法充分利用Spark的优势。你知道吗
再次重申,这一切仍然是新的,所以请原谅我,如果这是一个非常明显的问题。你知道吗
谢谢你!你知道吗
您可以在pySpark中合并两个数据帧,如下所示:
相关问题 更多 >
编程相关推荐