我正在使用pyspark 2.0。
我的代码是:
Poco::Thread
我无法直接for col in to_exclude:
df = df.drop(col)
,因为在2.0中,drop方法一次只接受1列。
有没有办法更改我的代码并删除for循环?
答案 0 :(得分:1)
首先 - 不用担心。即使你在循环中执行它,也不意味着Spark会为每个drop执行单独的查询。查询是懒惰的,因此它将首先构建一个大的执行计划,然后立即执行所有操作。 (但你可能知道了)
但是,如果你仍然希望摆脱2.0 API中的循环,我会选择与你实现的相反的东西:而不是删除列,只选择需要:
df.select([col for col in df.columns if col not in to_exclude])