根据特定列触发Scala循环

根据特定列触发Scala循环,scala,apache-spark,Scala,Apache Spark,我有一张表,看起来像下面给出的: Col_1 Col_2 Col_3 Col_4 Col_5 1 1a data data data 1 1b data data data 1 1c data data data 1 1d data data data 2 2a data data data 2 2b data data data 2 2c data data

我有一张表,看起来像下面给出的:

Col_1   Col_2   Col_3   Col_4   Col_5
1   1a  data    data    data
1   1b  data    data    data
1   1c  data    data    data
1   1d  data    data    data
2   2a  data    data    data
2   2b  data    data    data
2   2c  data    data    data
列1与列2相关联。 当我查询单个记录时:

val A = spark.table(“table_name”).filter($”Col_1” ==== “1”).select(“Col_2”).distinct.show()
我得到的输出是:

Col_2
1a
1b
1c
1d
现在,我想把它作为一个循环运行。从Col_1中获取值并给出与Col_2相关的输出。 有人能帮我吗?

一个可能的解决方案:

导入spark.implicits_
val inDf:DataFrame=spark.table(“表名称”)
val res:Array[DataFrame]=inDf.select($“Col_1”)
.distinct()
.collect().map(u.get(0))
并行执行的PAR//可选
.map{col1=>
inDf.filter($“Col_1”==col1)
。选择($“Col_2”)
}.托雷

你能澄清你想要什么吗?您已经有了与每个Col1关联的Col2值。@Ethan我想要一个循环,其中in值2取自Col_1,它给出了与Col_2中Col_1关联的所有值。接下来取值3,依此类推。您是否尝试运行某种聚合?Spark在数据帧上有本机分组函数,但它们以聚合为中心。