首页 > 解决方案 > Spark:Scala 等价于 Java df.filter()

问题描述

我想知道 Scala 中与 Spark Java 函数等效的是什么filter

DataFrame df = sqlContext.read().parquet(xxx);
String filter = "SomeFilter";
df.filter(filter);

通常filter应该在 Scala 中将函数作为输入,为什么它string在 Java 中使用?

标签: scalaapache-spark

解决方案


这是相同的模语法:

val df = sqlContext.read().parquet(xxx)
val filter = "SomeFilter"
df.filter(filter)

使用def filter(conditionExpr: String): Dataset[T]. 请注意,DataframeScala Spark API 中的a只是一个Dataset[Row].

还有一个带有 a重载Column和一个@Experimental带有函数的重载。

通常 filter 应该将函数作为 Scala 中的输入,为什么它在 Java 中使用字符串?

filter只是一个方法名,它可以接受它定义的任何参数。这里的字符串(或 a Column)表示 SQL 布尔条件。


推荐阅读