Scala Spark 按子字符串的索引对 RDD 进行排序
kevingrace
阅读:149
2025-06-02 22:19:02
评论:0
我是 Scala Spark 的新手,我有一个问题。
我有包含 1.2 亿个字符串的 RDD,我试图找到包含子字符串的所有字符串。我做得很好。
现在我想按索引对输出进行排序,以便找到的子字符串更接近开头的字符串将排在第一位。
例如:
子串:abcdefg
字符串:
s1 = tryuabcdefgyui
s2 = trabcdefgyui
s3 = abcdefg你
所以我想要的输出应该是一个排序为 {s3, s2, s1} 的列表\rdd
这样做的最佳方式是什么?
请您参考如下方法:
想法是将 RDD[String] 转换为 RDD[(String,Index)] ,其中 Index 是使用 Java 的 String indexOf。
// Dataset
val r = sc.makeRDD(Seq("abf", "ffff", "aaaaaabf", "ttggabf"))
// Sorting on index of substring "bf", only for those strings that contain "bf"
val sorted = r.map(s => (s, s.indexOf("bf"))).filter(_._2>0).sortBy(_._2)
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



