Apache spark 如何从函数参数动态创建列
我正在编写一个函数,希望传递它的参数以在数据框中创建列 比如,Apache spark 如何从函数参数动态创建列,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我正在编写一个函数,希望传递它的参数以在数据框中创建列 比如, def任意值(数据输入,节点): 节长=长度(节) 纽结名称=[“纽结”+str(num1)表示num1的范围(1,纽结长度+1)] datain=datain.withColumn(“var”+节点名称[1],随便什么…) 通过这样做,我看不到创建了最后一列“var_knot_1”。你知道如何正确地完成这项工作吗?非常感谢。您需要返回数据帧: # Initialise dataframe df = ... def whatev
def任意值(数据输入,节点):
节长=长度(节)
纽结名称=[“纽结”+str(num1)表示num1的范围(1,纽结长度+1)]
datain=datain.withColumn(“var”+节点名称[1],随便什么…)
通过这样做,我看不到创建了最后一列“var_knot_1”。你知道如何正确地完成这项工作吗?非常感谢。您需要返回数据帧:
# Initialise dataframe
df = ...
def whatever(datain, knots):
knots_length = len(knots)
knot_names = ["knot_" + str(num1) for num1 in range(1, knots_length+1)]
datain = datain.withColumn("var"+knot_names[1], whatever.....)
return datain
df = whatever(df, knots)
Spark数据帧是不可变的。换句话说,函数内部的datain
与函数外部的datain
不同。因此,您需要在函数中返回它,并将它分配给原始的数据。