为了实施无监督的随机森林学习-我想将训练后的数据标记为clean,并基于该数据创建伪造数据,但其功能之间存在异常,因此该模型会将这些行检测为异常。 在功能列(矢量)上跟随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上会快很多。...