我是Scala的初学者,我想循环浏览我正在阅读的每一行,如下所示:
val data = sc.textFile("D:/Data.csv")
Data.csv如下所示:
1,462,0,NA,0,1,0,Friday,1,5
1,147,33,NA,0,1,0,Friday,1,5
1,105,58,NA,0,1,0,Friday,1,5
1,276,96,NA,0,1,0,Friday,1,5
1,466,1,NA,0,1,0,Friday,1,5
1,466,1,NA,0,1,0,Friday,1,5
1,466,1,NA,0,1,0,Friday,1,5
我想迭代上面csv中的每一行,并在每行中打印第一列和第三列值。感谢任何帮助。
答案 0 :(得分:3)
val data = sc.textFile("D:/Data.csv")
data.map(_.split(','))
.foreach(r => println(r(0), r(2)))
上面的map
调用会在逗号上拆分文件中的每一行,将每一行转换为Array[String]
并创建RDD[Array[String]]
:此RDD
中的每个元素都是一行Array[String]
列值。
foreach
调用打印每行的第一和第三列值(即Array[String]
中每个RDD
中的第一个和第三个元素):
(1,0)
(1,1)
(1,1)
(1,33)
(1,1)
(1,58)
(1,96)