簡體   English   中英

Scala Spark按子串索引排序RDD

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM