通过使用DataFrame和'where()'方法选择A大于5或B大于5的行

时间:2018-05-02 15:33:30

标签: spark-dataframe

给定一个表示具有两个整数列(A,B)的表的变量t中的Spark DataFrame,使用DataFrame列编写表达式,作为DataFrame的where()方法的参数传递A大于5或B大于5的行。使用DataFrame变量而不是col()函数使用。

1 个答案:

答案 0 :(得分:0)

有两个col个功能:一个来自Dataset class,另一个来自org.apache.spark.sql.functions。在这个简单的例子中,两者都有效:

t.where(t.col("A").gt(5).or(t.col("B").gt(5))).show() //from dataset
import org.apache.spark.sql.functions._
t.where(col("A").gt(5).or(col("B").gt(5))).show() //from functions

根据您要避免的两个中的哪一个,您可以选择另一个。

如果您使用Scala,$也可以使用:

t.where($"A">5 or $"B">5).show

您也可以完全切换到sql语法:

t.where("A > 5 or B > 5").show

如果允许filter,lamdba版本也可以使用:

t.filter(r => r.getInt(0) > 5 || r.getInt(1) > 5).show
相关问题