如何使用Java在Spark SQL中加入多列以在DataFrame中进行过滤

  • DataFrame a =包含列x,y,z,k
  • DataFrame b =包含列x,y,a

     a.join(b,) ??? 

我试过用

 a.join(b,a.col("x").equalTo(b.col("x")) && a.col("y").equalTo(b.col("y"),"inner") 

但Java正在抛出错误,说&&是不允许的。

有人可以帮忙吗? 谢谢

Spark SQL在Column上提供了一组标记为java_expr_ops的方法,这些方法专为Java互操作性而设计。 它包括and (参见or )方法,可以在这里使用:

 a.col("x").equalTo(b.col("x")).and(a.col("y").equalTo(b.col("y"))