首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在scala中使用打印

在scala中使用打印
EN

Stack Overflow用户
提问于 2020-05-26 15:25:25
回答 1查看 69关注 0票数 0

我试图使用println以某种格式打印输出,但无法获得。

代码语言:javascript
复制
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))时

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-26 15:35:17

给定的

代码语言:javascript
复制
val l = List[(String, Int, Double)](
  ("Ubisoft", 3, 15.0),
  ("Activision", 3, 15.0),
  ("Electronic Arts", 2, 10.0)
)

注意打印集合的每个元素之间的区别。

代码语言:javascript
复制
l.foreach(println)
// (Ubisoft,3,15.0)
// (Activision,3,15.0)
// (Electronic Arts,2,10.0)

以及打印藏品本身

代码语言:javascript
复制
println(l)
// List((Ubisoft,3,15.0), (Activision,3,15.0), (Electronic Arts,2,10.0))

当我们希望在每个元素上应用一些副作用,比如打印时,foreach是通用的.

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62025660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档