Впервые в Spark и PySpark я пытаюсь добавить поле / столбец в DataFrame путем поиска информации в другом DataFrame. Я провел последние несколько часов, пытаясь читать RDD, DataFrames, DataSet, карты, объединения и т. Д., Но все эти концепции для меня все еще новы, и мне все еще трудно разобраться в этом.
Так, например, учитывая следующий входной DataFrame с идентификаторами и ролями:
+----+-------------+
| ID | Role |
+----+-------------+
| 1 | Author |
| 1 | Editor |
| 2 | Author |
| 2 | Publisher |
| 3 | Editor |
| 3 | Assistant |
+----+-------------+
И еще один входной DataFrame с уникальным отображением идентификаторов и имен:
+----+-------------+
| 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, а затем выполнить итерацию по каждой строке и вручную найти имя из таблицы ID + Имя, но это очень медленно, и я уверен, что не сможет извлечь выгоду из сильные стороны Spark.
Опять же, все еще новичок во всем этом, поэтому, пожалуйста, прости меня, если это действительно очевидный вопрос.
Спасибо!