我的问题是尝试使用UDF将API与pyspark链接起来
columns = ['N','P']
data = [(1,3),
(3,3),
(5,3)]
df = spark.createDataFrame(data=data,schema=columns)
+---+---+
|N |P |
+---+---+
|1 |3 |
|3 |3 |
|5 |3 |
+---+---+
@pandas_udf("col1 int, col2 int")
def func(s1: pd.Series, s2: pd.Series) -> pd.Series:
import scipy
s3 = s1 + s2*scipy.pi
return s3
使用此函数后所需的输出是一个预先添加了转换的新列
df2 = df.withColumn('transformed',func("N", "P"))
2条答案
按热度按时间9ceoxa921#
xriantvc2#
@pandas_udf
的参数是函数的返回类型,而不是输入参数的类型。将代码更改为
应该行得通。