python - 大数据上的 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。
解决方案
推荐阅读
- c - 变量声明和定义不匹配
- python - MATLAB binofit 的 Python 等效项
- java - 安全客户端/服务器认证协议
- android - 如何将 google 签名与 android 的电子邮件和密码身份验证联系起来
- java - 将适配器设置为回收器视图时出现空指针异常
- c# - 如何选择特定的子节点并在其中添加新的子节点
- c# - 400 Bad Request 通过 HttpClient.PutAsync 向 WebApi 提交 Json
- javascript - 无法从服务器端获取数组
- javascript - 所以这个脚本每小时进行超过 3000 次 API 调用,我不知道为什么。我该如何解决这个问题?
- python - 如何在 Python 2.7 的单遍数组中生成多个列表?