Spark DataFrame筛选:编写where()方法参数(禁用col()函数)
嘿,我来帮你搞定这个Spark DataFrame的筛选需求!
要筛选出t中A列大于5或者B列大于5的行,而且不能用col()函数,直接用DataFrame变量来引用列就行,下面分Scala和Python两种常用场景给你代码:
Scala版本
t.where(t("A") > 5 || t("B") > 5) // 或者用更直观的or关键字写法 t.where(t("A") > 5 or t("B") > 5)
Python版本
注意Python里运算符优先级的问题,记得给每个条件加括号:
t.where( (t["A"] > 5) | (t["B"] > 5) )
为啥这么写可行?
直接通过DataFrame变量("列名")(Scala)或者DataFrame变量["列名"](Python),就能获取到对应的Column对象,完全替代了col()的作用。然后用逻辑或运算符(Scala的||/or,Python的|)把两个条件组合起来,传入where()就完成筛选啦。
内容的提问来源于stack exchange,提问作者rupesh
相关产品推荐
相关产品推荐

