为了实现无监督的随机森林学习 - 我想将训练好的数据标记为干净,并根据该数据创建假数据,但是它的特征之间存在异常,因此模型会将这些行检测为异常 . 类似于使用功能列(向量)上的rdd执行的操作:

columns = df.first()
new_df = None
for i in range(0, len(columns)):
    column = df.sample(withReplacement=True, fraction=fraction) \
        .map(lambda row: row[i]) \
        .zipWithIndex() \
        .map(lambda e: (e[1], [e[0]]))
    if new_df is None:
        new_df = column
    else:
        new_df = new_df.join(column)
        new_df = new_df.map(lambda e: (e[0], e[1][0] + e[1][1]))
return new_df.map(lambda e: e[1])

但我想用dataframe API实现它,而不是用rdd . 有谁知道如何做到这一点?我认为使用dataframe api执行它会在pyspark上快得多....