【发布时间】:2019-03-01 08:37:16
【问题描述】:
我正在尝试根据我在网上找到的一些教程运行以下代码:
import pandas as pd
from pyspark.sql import SparkSession
from pyspark.sql import functions
from pyspark.sql import udf
df_pd = pd.DataFrame(
data={'integers': [1, 2, 3],
'floats': [-1.0, 0.5, 2.7],
'integer_arrays': [[1, 2], [3, 4, 5], [6, 7, 8, 9]]}
)
df = spark.createDataFrame(df_pd)
df.show()
def square(x):
return x**2
from pyspark.sql.types import IntegerType
square_udf_int = udf(lambda z: square(z), IntegerType())
但是当我运行最后一行时,出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
我在 Hadoop 2.7 上使用 spark 2.3.3。
谢谢
【问题讨论】:
-
你是怎么调用udf函数的!你能告诉我吗?
-
@RAMSHANKERG 我真的不明白你的意思,在错误之前的最后一行,因为我的消息说我正在尝试将我的函数转换为 UDF,这就是我正在运行的所有代码错误 square_udf_int = udf(lambda z: square(z), IntegerType())
-
你不应该通过调用 square_udf_int 函数向 z 发送一些值吗?
-
@RAMSHANKERG 是的,当我打电话给 UDF 时;但声明时代码失败
-
包括完整的回溯,显示导致错误的确切代码。在某个地方你有一个不属于你的
()。
标签: python pyspark user-defined-functions