[英]Scala Spark sort RDD by index of substring
我是Scala Spark的新手,我有一个问题。
我有包含1.2亿字符串的RDD,我正在尝试查找包含子字符串的所有字符串。 我做得很好。
现在我想按索引对输出进行排序,以便找到子字符串更接近start的字符串。
例如:
子字符串: abcdefg
字符串:
s1 = tryu abcdefg yui
s2 = tr abcdefg yui
s3 = abcdefg yuo
所以我想要的输出应该是一个排序的列表\\ rdd {s3,s2,s1}
这样做的最佳方法是什么?
我们的想法是将RDD[String]
为RDD[(String,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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.