apache-spark - 在 RDD 中查找值的总和
问题描述
我有一个示例文件,其中有数字,用空格分隔。我需要找到这些数字的总和。
这是它看起来像的文件:
10 20 30 40 50 60 70
1 2 3 4 5 6 7 8 9 10
10 20 30 40 50 60 70
我尝试使用包含数字的文本文件加载文件,然后我应用 flatmap 将数字按空格分割,然后我无法找到 sum 函数来对元素求和。
这是代码:
val rdd=sc.textFile(“/tmp/numbers.txt”)
val numRdd=rdd.flatMap(lines=>lines.split(“ “))
解决方案
您可以尝试将平面图映射到映射函数以将其转换为 Int,然后在 RDD 上使用 sum()。
val data = Seq("10 20 30 40 50 60 70 1 2 3 4 5 6 7 8 9 10 10 20 30 40 50 60 70")
val rdd:RDD[String] = sc.parallelize(data)
val dataSplit = rdd.flatMap(x => x.split(" ")).map(x => x.toInt)
val sumData = dataSplit.sum()
println("Total sum "+sumData)
推荐阅读
- spring-boot-admin - Spring Boot Admin 客户端在初始化期间出现异常
- maven - Maven 依赖树(按包)
- java - Java中的“===”等价物
- java - 使用 firebase-mlkit 访问云视觉 api 时套接字已关闭
- templates - Kendo UI - Datepicker 未在 Kendo-Template 中呈现
- php - PHP 的位置或路径问题
- java - 如何在 java 的流 API 中应用 if/else 逻辑。?
- excel - 我可以在 Excel 中使用 &-Operator 设置颜色/格式吗?
- javascript - 使用连字符吸引 ID 时 GetElementById 不起作用
- c# - 如何使用 RWLock 实现多读一写的场景?