У меня есть 2 кадра данных.
В одном кадре данных DF1 есть столбец со значениями, разделенными запятой, например, через запятую.Второй кадр данных DF2 имеет столбец с одним значением (это может быть частью значений столбца, разделенных запятыми, в другом кадре данных, DF1).Мне нужно перебрать записи / строки DF2 и посмотреть, существует ли DF2.color в значениях столбцов, разделенных запятыми в DF1.csv_column, и, если существует, добавить идентификатор строки df1 В НОВУЮ ФУНКЦИЮ ДАННЫХ.
df1= sqlContext.createDataFrame([("A001","RED, WHITE, BLUE"),("A002","RED, YELLOW"),("A003","GREEN,RED"),("A004","WHITE,YELLOW")], ["id","csv_column"])
df1.show()
df2= sqlContext.createDataFrame([("C1","RED"),("C2","WHITE"),("C3","BLUE"),("C4","YELLOW"),("C5","RED"),("C6","GREEN"),("C7","BLUE")], ["CLRCODE","COLOR"])
df2.show()
+----+----------------+
| id | csv_column |
+----+----------------+
|A001|RED, WHITE, BLUE|
|A002|RED, YELLOW |
|A003|GREEN, RED |
|A004|WHITE, YELLOW |
+----+----------------+
+-------+-------+
|CLRCODE| COLOR |
+-------+-------+
| C1 | RED |
| C2 | WHITE |
| C3 | BLUE |
| C4 | YELLOW|
| C5 | RED |
| C6 | GREEN |
| C7 | BLUE |
+-------+-------+
Ожидаемый результат: Столбец csv_column в df1 имеет RED, WHITE, BLUE и поэтому я добавил идентификаторы для RED, WHITE, BLUE в качестве строки в новый фрейм данных,и так далее.Обратите внимание, что CLRCODE в DF2 является просто заполнителем и поэтому не используется.Как получить этот результат.
+-------+
|df1.id |
+-------+
|A001 |
|A002 |
|A003 |
|A001 |
|A004 |
|A001 |
|A002 |
|A004 |
|A001 |
|A002 |
|A003 |
|A003 |
|A001 |
+-------+
Я проверил в этом решении SO здесь , но там столбец с разделенными запятыми датафреймами проверяется на соответствие статическому строковому значению, но мне нужно пройти черезфрейм данных, который содержит много строк различных значений.
Спасибо за помощь.