В моей программе я хочу выполнить операцию groupBy над фреймом данных, используя общий элемент в списке. Например, следующий кадр данных:
visitorId |trackingIds |emailIds
+-----------+----------------+--------
[a158] |[666b,666b,777c]|[12]
[7g21] |[c0b5,c0b4] |[45, 87]
[p9098] |[666b] |[90]
[8u7t] |[c0b5] |[40]
Должен быть сгруппирован по столбцу trackingIds , который фактически является списком [String]
visitorId |trackingIds |emailIds
+------------------+----------------+------------
[a158, p9098] |[666b,666b,777c]|[12, 90]
[7g21, 8u7t] |[c0b5,c0b4] |[45, 87, 40]
У меня есть решение, использующее простую функцию, которая находит элемент в других строках и соответственно объединяет, но ищет решение, которое было бы экономически эффективным, поскольку операция должна выполняться на большом кадре данных с миллионами строк.