У меня есть следующий пакет данных Spark, который создается динамически:
val sf1 = StructField("name", StringType, nullable = true)
val sf2 = StructField("sector", StringType, nullable = true)
val sf3 = StructField("age", IntegerType, nullable = true)
val fields = List(sf1,sf2,sf3)
val schema = StructType(fields)
val row1 = Row("Andy","aaa",20)
val row2 = Row("Berta","bbb",30)
val row3 = Row("Joe","ccc",40)
val data = Seq(row1,row2,row3)
val df = spark.createDataFrame(spark.sparkContext.parallelize(data), schema)
df.createOrReplaceTempView("people")
val sqlDF = spark.sql("SELECT * FROM people")
Теперь мне нужно перебирать каждую строку и столбец в sqlDF
для печати каждого столбца, это моя попытка:
sqlDF.foreach { row =>
row.foreach { col => println(col) }
}
row
является row
Row
, но не является итерабельным, почему этот код row.foreach
ошибку компиляции в row.foreach
. Как перебирать каждый столбец в Row
?