首页 > 解决方案 > 大数据上的 pyspark udf

问题描述

我有一个包含 1000 万行且只有 3 列的 spark 数据框。其中一列是 MapType(),其中包含日期、值的映射。因此,该列包含时间序列数据,每一行都包含一个时间序列。因此,我在该数据框中有 1000 万个时间序列。

我有用 Python 编写的自定义代码/函数来检测时间序列数据中的尖峰,并使用 pyspark udf 来使用该函数来检测数据帧中每个时间序列的尖峰。在我的尖峰检测功能中,将 MapType() 对象转换为 pandas 数据帧,我使用 pandas mean 和 std。偏差检测尖峰。

pyspark udf 成本很高。对于 1000 万行,这大约需要 90 分钟。

我们还有其他选择吗?如果 udf 是唯一的选择,我们如何提高性能?请注意,我不能使用 spark2.3/pandas_udf 并且仅限于 spark2.2。

标签: pythonapache-sparkpyspark

解决方案


推荐阅读