Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 基于Spark DF中2列的组合筛选行_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Scala 基于Spark DF中2列的组合筛选行

Scala 基于Spark DF中2列的组合筛选行,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,输入DF: A B 1 1 2 1 2 2 3 3 3 1 3 2 3 3 3 4 我正在尝试根据以下组合筛选行: (A, Max(B)) 输出Df: A B 1 1 2 3 3 4 我可以用它来做

输入DF:

  A         B        
  1         1         
  2         1
  2         2
  3         3
  3         1
  3         2 
  3         3
  3         4
我正在尝试根据以下组合筛选行:

(A, Max(B))
输出Df:

   A        B
   1        1
   2        3
   3        4
我可以用它来做这件事

 df.groupBy() 
但在DF中还有其他列,我希望被选中,但不希望包含在GroupBy中 因此,筛选行的条件应该只针对这些列,而不是DF中的其他列。所有建议请>

如中所建议的,您可以使用窗口功能

import org.apache.spark.sql.expressions._
import org.apache.spark.sql.functions._

df.withColumn("maxB", max(col("B")).over(Window.partitionBy("A"))).where(...)
其中,
..
由基于
a
maxB
的谓词替换