gpt4 book ai didi

Scala Spark rdd 组合在文件中以匹配对

转载 作者:行者123 更新时间:2023-12-02 13:29:47 26 4
gpt4 key购买 nike

我正在学习 Spark+Scala,我遇到了这个问题。我有两件事。一个包含许多单词的文件(例如,我向您展示前 2 行):

scala> val text = sc.textFile("hdfs://master:9000/data/words.txt")
text: org.apache.spark.rdd.RDD[String] = hdfs://master:9000/data/words.txt MapPartitionsRDD[1] at textFile at <console>:24

scala> text.take(2)
res0: Array[String] = Array("a b c d ", "e r t y u i o p ")

我有一个“组合”变量,表示频繁出现的单词对(例如,我向您展示第 2 行):

scala> val combinations = l.cartesian(l).filter{case(x,y) => x < y}
combinations: org.apache.spark.rdd.RDD[(String, String)] = MapPartitionsRDD[9] at filter at <console>:32

scala> combinations.take(2)
res1: Array[(String, String)] = Array((a,b), (a,c))

我想从“文本”变量的每一行创建组合对,以便将它们与“组合”变量对匹配。

例如,对于输入文本的第一行,我希望:

(a,b) (a,c) (a,d) (b,c) (b,d) (c,d)

这样我就可以将它们与“组合”变量相匹配

请帮忙!这真让我抓狂。谢谢,

最佳答案

如果我理解正确的话,我们希望获得text每个条目中包含的字母的组合。例如:

"a b c d " => (a,b) (a,c) (a,d) (b,c) (b,d) (c,d)

我们可以使用 Scala 集合 API 来完成此操作:

val textCombinations = text.map(t => t.split(" ").combinations(2).toList)

关于Scala Spark rdd 组合在文件中以匹配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41196826/

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