将 pandas_udf 与 spark 2.2 一起使用

Posted

技术标签:

【中文标题】将 pandas_udf 与 spark 2.2 一起使用【英文标题】:Use pandas_udf with spark 2.2 【发布时间】:2019-05-04 10:28:36 【问题描述】:

无论如何在 pyspark 2.2 中使用pandas_udf

【问题讨论】:

【参考方案1】:

实际上,您正在创建一个函数,然后从该给定函数创建一个 pandas_udf。 如果您想将其用作 pyspark udf,您所要做的就是从该函数创建一个 pyspark udf。 使用databricks文档中的给定示例:

from pyspark.sql.functions import *
from pyspark.sql.types import *

def multiply_func(a, b):
    return a * b

#the return type depends on your values, so it can be DoubleType()
multiply_func_udf = udf(lambda x,y: multiply_func(x,y), IntegerType())

#then you can call like
spark_df.withColumn("multiplied_values",multiply_func_udf(col("x"),col("y"))

【讨论】:

我正在寻找一种在 spark 2.2 中使用 apache 箭头的方法,在 spark 2.3 中默认支持该箭头

以上是关于将 pandas_udf 与 spark 2.2 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Spark pandas_udf 并不快

将 pyspark pandas_udf 与 AWS EMR 一起使用时出现“没有名为‘pandas’的模块”错误

结构化流是如何执行 pandas_udf 的?

在 pyspark 中使用 pandas_udf 过滤数据框

pandas_udf结果无法写入表

pandas_udf 给出与 pyarrow 相关的错误