【发布时间】:2022-01-05 19:24:46
【问题描述】:
对于计算,我已经创建了这个数据框
df1:
+--------------+------+------------+
|name |MG |questions |
+--------------+------+------------+
|toto |MG1 |[Q1, Q2] |
|toto |MG3 |[Q4, Q6, Q7]|
|toto-123 |MG1 |[Q1, Q2] |
|toto-456 |MG1 |[Q1, Q2] |
|titi |MG1 |[Q1, Q2] |
|... |... |... |
+--------------+------+------------+
到目前为止,这已经足够了,但是现在,对于一个新的需求,我遇到了一个我无法解决的问题:我必须按 name 和 MG 而不是精确的 name 对行进行分组,但是有类似的name,就像那样
df1:
+--------------+------+-----------------------------+
|name |MG |questions |
+--------------+------+-----------------------------+
|toto |MG1 |[Q1, Q2] [Q1, Q2] [Q1, Q2] |
|toto |MG3 |[Q4, Q6, Q7] |
|titi |MG1 |[Q1, Q2] |
|... |... |... |
+--------------+------+-----------------------------+
这里,questions for toto 是toto, toto-123 and toto-456 的问题。它们可以保留在不同的阵列中或相同的阵列中。理想情况下,toto-123 和 toto-456 的行仍然保留。
我已尝试使用条件思考 SQL 表达式的 groupby 函数,但没有成功
您有什么提示或解决方案吗? 非常感谢
【问题讨论】:
-
你能举个例子,说明你从什么开始以及你想要什么结果?
标签: dataframe apache-spark pyspark group-by apache-spark-sql