Spark Scala Loop в соответствии с определенной колонкой - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть таблица, похожая на приведенную ниже:

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

Col_1 связан с Col_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.Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 25 сентября 2019

Одно из возможных решений:

import spark.implicits._

val inDf: DataFrame = spark.table("table_name")
val res: Array[DataFrame] = inDf.select($"Col_1")
  .distinct()
  .collect().map(_.get(0))
  .par //optional to parallel execute
  .map { col1 =>
    inDf.filter($"Col_1" === col1)
      .select($"Col_2")
  }.toArray
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...