大数据即众多小数据:使用Pandas UDF
在数据处理和分析领域,利用用户自定义函数(UDF)可以极大地扩展工具的功能。本文将深入探讨如何使用Pandas UDF来处理大数据,挖掘数据的价值。
1. 标量UDF与冷启动:系列迭代器UDF
在PySpark 3.0+版本中,有一类特殊的标量UDF,将系列迭代器UDF和多系列迭代器UDF这两种类型结合起来。其在处理需要进行昂贵冷启动操作的场景中非常有用。冷启动指的是在处理数据之前,需要在处理步骤开始时执行一次的操作,比如反序列化本地机器学习模型。
下面以 f_to_c2
函数为例,展示系列迭代器UDF的使用:
from time import sleep
from typing import Iterator
import pandas as pd
import pyspark.sql.functions as F
import pyspark.sql.types as T
@F.pandas_udf(T.DoubleType())
def f_to_c2(degrees: Iterator[pd.Series]) -> Iterator[pd.Series]:
"""Transforms Farhenheit to Celcius."""
sleep(5)
for batch in degrees:
yield (batch - 32) * 5 / 9
在使用这个函数时,我们可以对 gsod