比方说,我们想从数据框中删除一列。无需创建新的数据框就能做到吗?
df = df.drop("tags_s")
创建一个新的数据框似乎更安全,更正确,对吗?重新使用上述数据框可能会遇到什么问题?
如果重复使用数据框是一种不好的做法,则可以说要删除与模式匹配的几列:
for col in df.columns:
if col.startswith("aux_"):
df = df.drop(col)
在这种情况下,每次创建一个新的数据框似乎都是不切实际的。 最佳做法是什么?
答案 0 :(得分:1)
如果要删除多个列,我想说的第一步是识别列,将其保存在列表中,然后执行一个.drop
,例如:
your_column_list = [col for col in df.columns if col.startswith("aux") ]
df.drop(*your_column_list)
答案 1 :(得分:0)
根据我对Spark数据框的理解,您不必担心它每次都会返回新的数据框,而您所做的只是在数据框上进行了转换。您可以对数据框执行许多转换,只有在对数据框执行任何操作时才产生新的数据框。
有关转化与操作的更多信息, https://spark.apache.org/docs/latest/rdd-programming-guide.html#basics