为df.drop删除for循环

时间:2018-06-04 09:50:47

标签: python apache-spark pyspark

我正在使用pyspark 2.0。

我的代码是:

Poco::Thread

我无法直接for col in to_exclude: df = df.drop(col) ,因为在2.0中,drop方法一次只接受1列。

有没有办法更改我的代码并删除for循环?

1 个答案:

答案 0 :(得分:1)

首先 - 不用担心。即使你在循环中执行它,也不意味着Spark会为每个drop执行单独的查询。查询是懒惰的,因此它将首先构建一个大的执行计划,然后立即执行所有操作。 (但你可能知道了)

但是,如果你仍然希望摆脱2.0 API中的循环,我会选择与你实现的相反的东西:而不是删除列,只选择需要:

df.select([col for col in df.columns if col not in to_exclude])