Я работаю над сценарием, где мне нужно иметь вложенные циклы. Я могу получить желаемый результат, но подумал, что, возможно, есть и лучший способ добиться этого.
У меня есть образец DF и я хотел получить вывод в следующем формате
List(/id=1/state=CA/, /id=2/state=MA/, /id=3/state=CT/)
Ниже приведен фрагмент кода, но любое предложение улучшит его.
Пример:
val stateDF = Seq(
(1, "CA"),
(2, "MA"),
(3, "CT")
).toDF("id", "state")
var cond = ""
val columnsLst =List("id","state")
var pathList = List.empty[String]
for (row <- stateDF.collect) {
cond ="/"
val dataRow = row.mkString(",").split(",")
for (colPosition <- columnsLst.indices) {
cond = cond + columnsLst(colPosition) + "=" + dataRow(colPosition) + "/"
}
pathList = pathList ::: List(cond)
}
println(pathList)