我正在研究將學生數據轉換爲間隔的小型項目。該程序只是讀取數據,並從標記列中選擇標記(整數),將其按升序排序後轉換爲間隔。任何一個可以幫我這個特殊部分,與許多感謝:如何從Scala中的列讀取行
代碼:
import org.apache.spark.sql.functions._
import org.apache.spark.sql.Row
case class Rating(mark: Int, classes: String, schooles: String, name: String)
val Result = sc.textFile("hdfs://schools:9000/input/marks.csv").map(_.split(",")).map(p => Rating(p(0).toInt, p(1).trim, p(2).trim, p(3).trim)).toDF
val all_marks = Result.groupBy("classes", "schooles","name").agg(collect_list("mark") as "marks",count("*") as "cnt").where($"cnt" > 10)
val mrk=all_marks.select("marks")
我需要幫助的部分:
mrk.foreach(
var ascending=mrk.sort
var interval=ascending[0]+"-"+ascending[ascending.size]
)
我怎樣才能讀取的標記按行行,所以我可以對它們進行排序,並將它們轉換爲間隔。
非常感謝Shankar,但是如何將數據幀「val mrk = all_marks.select(」marks「)」轉換爲Seq和「val ddf1 = Seq(List(2,3,1),List(6,4, 3 ))。toDF(「marks」)「 –
你爲什麼要轉換爲列表?我認爲這不是好主意 –
如果你真的想要mrk.rdd.map(r => r(0))。collect()這是你可以做的 –