2016-11-06 174 views
-3

嗨請問任何人可以幫助我下面的查詢。 我正在研究Scala代碼,其中我有一個Scala收藏列表'學生',如下所示。斯卡拉系列

List(
    students(Rajesh, 21, branch1, sem1), 
    students(Kamal, 25, branch2, sem2), 
    students(Kavitha, 23, branch3, sem3) 
) 

這裏的學生就像是

case class students(name:String, age:Int, branchname:String, semname: String) 

的情況下類現在我的要求是爲特定的分支獲得的名稱。我怎麼能得到這個。

我可以使用.toDF()將Scala列表學生轉換爲數據框,然後編寫where條件以讀取相應的行並獲取該值。

但是由於在這種情況下我的數據非常小,所以我想使用純粹的斯卡拉集合List

任何人都可以請同樣的幫助。

+0

澄清,請,什麼結果在這個例子中數據應看起來像。你想得到一個給定分支上的學生姓名列表嗎?另外,Spark是否真的在這裏相關?如果你想要一個沒有它的解決方案,只需從問題中刪除它,這將使它更容易理解。 – laughedelic

+0

我可以用下面的方法修復它。 – Ramesh

+0

我已經將Scala列表分配給變量「studentsList」,然後我可以遍歷它。 'studentList.foreach(x => func(x.name,x.age,x。branch,x.sem)) def func(name:String,age:Int,branch:String,sem:String):Unit = { println(姓名) println(年齡) println(分支) } – Ramesh

回答

3

你的問題沒有提及爲什麼需要火花,你可以做到這一切很容易如下,假設你的情況類定義了相同的

case class students(name: String, age: Int, branch: String, sem: String) 

val listStudents = List(students("Rajesh",21,"branch1","sem1"), 
    students("Kamal",25,"branch2","sem2"),students("Kavitha",23,"branch3","sem3")) 

val filteredNames = listStudents.filter(_.branch == "branch2").map(_.name)