java - 如何忽略 RDD 字符串的一部分进行操作
问题描述
我有一个文件,每一行的结构如下:
500, 1733345329, A, ugly, 500, 1230, 99
2, 1171253353, picB, wow, 1660, 20, 213
...
我的目标是操纵每行的最后 3 位数字(500、1230、99)并附加到第一个 int 作为键。在这种情况下,有没有一种方法可以使用 map ,我可以提取字符串的一部分并将它们用于诸如求和之类的操作中?
编辑:我忘了提到我正在尝试在 Java 中执行此操作
解决方案
您可以读取文本文件,用逗号分隔行,并映射到一个元组,其中第一个整数作为键,最后三个整数的数组作为值。
val rdd = sc.textFile("filepath.txt")
val rdd2 = rdd.map(_.split(", ")).map(r => (r(0).toInt, Array(r(4), r(5), r(6)).map(_.toInt)))
// rdd2: org.apache.spark.rdd.RDD[(Int, Array[Int])]
rdd2.collect
// Array[(Int, Array[Int])] = Array((500,Array(500, 1230, 99)), (2,Array(1660, 20, 213)))
推荐阅读
- module - 加载时的 F# 模块效果
- python - Pandas:运行函数以应用于数据集
- design-patterns - 样本工厂模式输出不显示
- angular - 使用角度 5 合并数组
- php - 为什么这个 PHP 代码不能输入到链接 TAG href 属性?(本地主机,不使用 laravel)
- css - 使用背景图像调整 div 大小时保持文本位置正确:包含
- javascript - 使用嵌套的 ngFor 遍历两个单独的数组
- jquery - 使用 MutationObserver 来操作和设置动态加载的输入元素的“类型”属性
- javascript - 事件监听器:如何区分鼠标选择和键盘输入
- ios - Cloud Firestore Swift:如何删除文档查询