PySpark 分组并逐行应用 UDF 操作

Posted

技术标签:

【中文标题】PySpark 分组并逐行应用 UDF 操作【英文标题】:PySpark Group and apply UDF row by row operation 【发布时间】:2019-08-26 22:11:31 【问题描述】:

我有一个包含“标签”和“日期”的数据集。我需要按“标签”对数据进行分组(这很容易),然后在每个组中计算它们的日期小于该特定行中的日期的行数。我基本上需要在分组数据后遍历行。我不知道如何编写一个在 PySpark 中处理该问题的 UDF。感谢您的帮助。

【问题讨论】:

最好给出样本数据集和预期结果。 你能分享示例输入和输出吗?从你的问题很难得出逻辑 最好提供一个例子。但是你不应该为此需要循环或 UDF。在 pysparks 中使用循环会破坏 pyspark 的逻辑,因为您不能在循环中分发作业。 【参考方案1】:

你需要一个聚合?

df.groupBy("tag").agg("date":"min")

那怎么样?

【讨论】:

以上是关于PySpark 分组并逐行应用 UDF 操作的主要内容,如果未能解决你的问题,请参考以下文章

python中read,readline,和readlines的区别 并逐行输出

PySpark UDF 返回可变大小的元组

如何使用Javascript读取本地文本文件并逐行读取?

Scala中的Spark分组映射UDF

打开文本文件并逐行读取

Python逐行读取txt文本,按符合分割词并逐行写入txt