scala - Spark RDD 获取和删除行
问题描述
我有 1000 个元素的 RDD。我想从中取出 100 个元素,然后从初始 RDD 中删除这 100 个元素。但是在尝试了多种方法后,我无法找到一种方法。
var part = dataRDD.take(100)
部分是一个数组[字符串]
我想从 100 个 dataRDD 中删除 100 个元素。
var dataRDD = dataRDD.filter(row => row != part)
上面没有显示任何错误,但没有删除任何行。dataRDD 仍然有相同的 1000 行。
您能否指导如何完成这项工作。
解决方案
方法“zipWithIndex”可用于拆分rdd:
val zipped = rdd.zipWithIndex()
val first100 = zipped.filter(_._2 < 100).keys
val remaining = zipped.filter(_._2 >= 100).keys
推荐阅读
- reactjs - 修复文本行数的正确方法
- php - Nginx 错误:“主脚本未知”,我该如何解决?谢谢
- python - 无法使用 Ctypes.cdll 导入 DLL
- clang - 如何在 wasm 中更改导入模块名称“env”?
- bash - 检查目录权限用户是否可以在其中创建文件
- php - 如何防止用户操纵 URL 中的查询字符串?
- customization - Acumatica - 即使保存到数据库,数据在自定义字段中显示的问题
- python - 使用 Python 将现有 BQ 表中的列添加到另一个 BQ 表
- c# - 使用连续移动 ONVIF 时可选的 `Timeout` 值应该是什么值
- hazelcast-jet - 如何修复意外的 hazelcast 客户端关闭