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

By Using DataFrame's and 'where()' method which selects rows where A is greater than 5 or B is greater than 5

给定变量 t 中的 Spark DataFrame 表示具有两个整数列 (A, B) 的 table ,使用要作为 DataFrame [= 的参数传递的 DataFrame 列编写表达式12=] 方法选择 A 大于 5 或​​ B 大于 5 的行。使用 DataFrame 变量而不由 col() 函数使用。

有两个 col 函数:一个来自 Dataset class and one from 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