Python 在pyspark中创建新列时出现问题

Python 在pyspark中创建新列时出现问题,python,pyspark,apache-spark-sql,pyspark-dataframes,Python,Pyspark,Apache Spark Sql,Pyspark Dataframes,我有一个python函数,它接受2个输入参数,进行一些计算并返回一些值 def func(column1,column2): if float(column1)!=1 and float(column2) !=0: return float(min(1,norm.cdf(norm.ppf(column1) - float(column2))/column1)) else: return 0 现在,我使用以下方法将此函数转换为Pyspark UDF: udf_func = ud

我有一个python函数,它接受2个输入参数,进行一些计算并返回一些值

def func(column1,column2):
  if float(column1)!=1 and float(column2) !=0:
    return float(min(1,norm.cdf(norm.ppf(column1) - float(column2))/column1))
else:
   return 0
现在,我使用以下方法将此函数转换为Pyspark UDF:

udf_func = udf(func,FloatType())
现在我想在多列上使用这个函数,所以我使用for循环遍历多列

这是我正在使用的数据帧: a=[ (1, 3, 4, 6, 4), (2, 2, 2, 4, 7), (3, 1, 5, 2, 2), (4, 4, 3, 6, 5), ]

b=[“第1列”、“第2列”、“第3列”、“第4列”、“第5列”]

df_test=spark.createDataFrame(a,b) df_test.show()

+-------+-------+-------+-------+-------+ |第1列|第2列|第3列|第4列|第5列| +-------+-------+-------+-------+-------+ | 1| 3| 4| 6| 4| | 2| 2| 2| 4| 7| | 3| 1| 5| 2| 2| | 4| 4| 3| 6| 5| +-------+-------+-------+-------+-------+

我希望它在Pyspark中工作,但每次执行时我都会出错。请帮助我,因为我是Pyspark的新手

错误: 第4行,以func表示
TypeError:uz()接受1个位置参数,但给出了2个

请提供一些数据以处理,不要发布图像。请花点时间阅读如何发布spark问题:我已经添加了数据。请看一看。感谢您的帮助!
for i in range(1,5):
  df = df.withColumn(f'col{i}',udf_func(f'column{i}','column5'))