我有一个30列的数据框。但是我想专门在3列上应用一个函数。我做了这样的事情:
# these are the 3 columns of a dataframe df and they are of StringType
date_columns = ['date1', 'date2', 'date3']
# my function
def convert_date(x):
if x is '':
return ''
else:
return f.expr("date_add(to_date('1899-12-30'), cast(x as int))").cast(StringType())
# Want to do something like this
for c in date_columns:
df = df.withColumn(c, convert_date(df[c]))
这是实现此目标的正确方法吗?也许我在这里错过了一些东西。