Я пытаюсь найти функцию разнесения или ее эквивалент в простом scala, а не в Spark. Используя функцию разнесения в Spark, я смог сгладить строку с несколькими элементами в несколько строк, как показано ниже.
scala> import org.apache.spark.sql.functions.explode
import org.apache.spark.sql.functions.explode
scala> val test = spark.read.json(spark.sparkContext.parallelize(Seq("""{"a":1,"b":[2,3]}""")))
scala> test.schema
res1: org.apache.spark.sql.types.StructType = StructType(StructField(a,LongType,true), StructField(b,ArrayType(LongType,true),true))
scala> test.show
+---+------+
| a| b|
+---+------+
| 1|[2, 3]|
+---+------+
scala> val flat = test.withColumn("b",explode($"b"))
flat: org.apache.spark.sql.DataFrame = [a: bigint, b: bigint]
scala> flat.show
+---+---+
| a| b|
+---+---+
| 1| 2|
| 1| 3|
+---+---+
Существует ли эквивалентная функция разнесения в простом scala без использования Spark? Можно ли как-нибудь реализовать это, если в scala нет функции разнесения?