gpt4 book ai didi

Scala Spark 按子字符串的索引对 RDD 进行排序

转载 作者:行者123 更新时间:2023-12-01 18:10:21 24 4
gpt4 key购买 nike

我是 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)

关于Scala Spark 按子字符串的索引对 RDD 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38209531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com