以下语法:
def func0(x: Int => Int, y: Int)(in: DataFrame): DataFrame = {
in.filter('col > x(y))
}
无法放置'col。 “ col”不起作用,而“ col”在以下代码中起作用:
def func1(x: Int)(in: DataFrame): DataFrame = {
in.selectExpr("col", s"col + $x as col1")
}
'col
表示?
数据框示例只有一个列col
,如果2或3列怎么办?显然这里缺少一些东西。告诉我这很简单。
答案 0 :(得分:2)
'col
是一种引用名为col
的列的方法,与$"col"
或col("col")
相同,具有名为col
的列有点让人困惑
它在Spark 2.3中为我工作
具有列号的示例
df.show
+------+------+
|letter|number|
+------+------+
| a| 1|
| b| 2|
+------+------+
df.filter('number >1).show
+------+------+
|letter|number|
+------+------+
| b| 2|
+------+------+
与其他表达式相同
import spark.implicits._
df.filter($"number" >1).show
import org.apache.spark.sql.functions
df.filter(col("number") >1).show