我试图使用println以某种格式打印输出,但无法获得。
val vgdataLines = sc.textFile("hdfs:///user/ashhall1616/bdc_data/assignment/t1/vgsales-small.csv")
val vgdata = vgdataLines.map(_.split(";"))
val countPublisher = vgdata.map(r => (r(4),1))
val totalcount= countPublisher.count().toInt
val reducePublisher = countPublisher.reduceByKey(_+_)
def toPercentage(x: Int): Double = {x * 100/totalcount}
val top50 = countPublisher.map(r => (r._1, r._2, toPercentage(r._2)))
val top50desc= top50.sortBy(_._2, false)
println(top50desc.take(50))预期产出格式:
(Ubisoft,3,15.0)
(动视,3,15.0)
(电子艺术,2,10.0)
(任天堂,2,10.0)
(喝彩娱乐,1,5.0)
(Sega,1,5.0)
(3DO,1,5.0)
(Namco Bandai运动会,1,5.0)
res1:数组(String,Int,Double) =Array(索尼计算机娱乐,1,5.0),(Activision,1,5.0),(任天堂,1,5.0),(任天堂,1,5.0),(3 3DO,1,5.0),(Sega,1,5.0),(TDK媒体娱乐,1,5.0),(Capcom,1,5.0),(Atari,1,5.0),(Konami数字娱乐,1,5.0),(Namco Bandai游戏,1,5.0),(电子艺界,1,5.0 ),(卡利普索媒体,1,5.0),(Ubisoft,1,5.0),(Ubisoft,1,5.0),(Electronic,1,5.0),(Ubisoft,1,5.0),(喝彩娱乐,1,5.0),(Activision,1,5.0)
这是当我使用top50desc.take(50)而不是println(top50desc.take(50))时
发布于 2020-05-26 15:35:17
给定的
val l = List[(String, Int, Double)](
("Ubisoft", 3, 15.0),
("Activision", 3, 15.0),
("Electronic Arts", 2, 10.0)
)注意打印集合的每个元素之间的区别。
l.foreach(println)
// (Ubisoft,3,15.0)
// (Activision,3,15.0)
// (Electronic Arts,2,10.0)以及打印藏品本身
println(l)
// List((Ubisoft,3,15.0), (Activision,3,15.0), (Electronic Arts,2,10.0))当我们希望在每个元素上应用一些副作用,比如打印时,foreach是通用的.
https://stackoverflow.com/questions/62025660
复制相似问题