如何按列表中的相似元素分组

时间:2019-01-17 17:11:27

标签: scala apache-spark apache-spark-sql

在我的程序中,我想使用列表中的公共元素对数据框执行 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]

我有一个使用简单函数的解决方案,该函数可以查找其他行中的元素并进行相应合并,但是正在寻找一种具有成本效益的解决方案,因为该操作将在具有数百万行的大型数据帧上执行。

0 个答案:

没有答案