【发布时间】:2020-01-08 03:03:05
【问题描述】:
如果我的输入数据框有重复的同名列,我需要返回布尔值 false。我写了下面的代码。它从输入数据框中识别重复的列,并将重复的列作为列表返回。但是当我调用这个函数时,它必须返回布尔值,即,如果我的输入数据框有重复的同名列,它必须返回flase。
@udf('string')
def get_duplicates_cols(df, df_cols):
duplicate_col_index = list(set([df_cols.index(c) for c in df_cols if df_cols.count(c) == 2]))
for i in duplicate_col_index:
df_cols[i] = df_cols[i] + '_duplicated'
df2 = df.toDF(*df_cols)
cols_to_remove = [c for c in df_cols if '_duplicated' in c]
return cols_to_remove
duplicate_cols = udf(get_duplicates_cols,BooleanType())
【问题讨论】:
-
为什么要使用udf?也可以不使用 udf。
标签: pyspark pyspark-dataframes