pyspark for udf中的返回类型无效

mnemlml8  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(418)

我在pyspark中遇到了一个奇怪的问题,我想定义和使用一个udf。我总是遇到这样的错误:
typeerror:无效的returntype:returntype应为datatype或str,但为<'pyspark.sql.types.integertype'>
我的代码其实很简单:

from pyspark.sql import SparkSession
from pyspark.sql.types import IntegerType

def square(x):
    return 2

def _process():
    spark = SparkSession.builder.master("local").appName('process').getOrCreate()
    spark_udf = udf(square,IntegerType)

问题可能出在integertype上,但我不知道这有什么问题。我正在使用 Python version 3.5.3 以及 spark version 2.4.1

js5cn81o

js5cn81o1#

既然你用的是 IntegerType 直接不打电话就引起了问题

def _process():
    spark = SparkSession.builder.master("local").appName('process').getOrCreate()
    spark_udf = udf(square,IntegerType())

尝试调用类型 IntegerType() 它应该很好用。

相关问题