UDF 的 pyspark 中的返回类型无效



我在pyspark中遇到了一个奇怪的问题,我想定义和使用UDF。我总是收到此错误:

TypeError: 无效的返回类型: 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.3spark version 2.4.1

由于您直接使用IntegerType而不调用它会导致问题

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

尝试调用类型IntegerType(),它应该可以正常工作。

最新更新