Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala RDD交叉口_Scala_Intersection_Rdd - Fatal编程技术网

Scala RDD交叉口

Scala RDD交叉口,scala,intersection,rdd,Scala,Intersection,Rdd,我有一个关于两个RDD之间的交集的查询 我的第一个RDD有如下元素列表: A = List(1,2,3,4), List(4,5,6), List(8,3,1),List(1,6,8,9,2) B = (1,2,3,4,5,6,8,9) 第二个RDD是这样的: A = List(1,2,3,4), List(4,5,6), List(8,3,1),List(1,6,8,9,2) B = (1,2,3,4,5,6,8,9) (我可以将B作为集合存储在内存中,但不是第一个。) 我想把A中的每

我有一个关于两个RDD之间的交集的查询

我的第一个RDD有如下元素列表:

A = List(1,2,3,4), List(4,5,6), List(8,3,1),List(1,6,8,9,2)
B = (1,2,3,4,5,6,8,9)
第二个RDD是这样的:

A = List(1,2,3,4), List(4,5,6), List(8,3,1),List(1,6,8,9,2)
B = (1,2,3,4,5,6,8,9)
(我可以将B作为
集合存储在内存中,但不是第一个。)

我想把A中的每个元素与B相交

List(1,2,3,4).intersect((1,2,3,4,5,6,8,9))
List(4,5,6).intersect((1,2,3,4,5,6,8,9))
List(8,3,1).intersect((1,2,3,4,5,6,8,9))
List(1,6,8,9,2).intersect((1,2,3,4,5,6,8,9))
如何在Scala中执行此操作?

val result=rdd.map(x=>x.intersect(B))

B
rdd
必须具有相同的类型(在本例中为
List[Int]
)。另外,请注意,如果B很大但适合内存,您可能希望将其广播为

scala>valb=List(1,2,3,4,5,6,8,9)
B:List[Int]=List(1,2,3,4,5,6,8,9)
scala>val rdd=sc.parallelize(顺序(列表(1,2,3,4)、列表(4,5,6)、列表(8,3,1)、列表(1,6,8,9,2)))
rdd:org.apache.spark.rdd.rdd[List[Int]]=ParallelCollectionRDD[0]位于parallelize at:21
scala>rdd.map(x=>x.intersect(B)).collect.mkString(“\n”)
res3:字符串=
清单(1、2、3、4)
名单(4、5、6)
清单(8、3、1)
列表(1,6,8,9,2)

看看这个:我花了10秒在谷歌上找到。谢谢!但我怀疑它在scala中是否有效。我得到一个错误,说RDD不是传递给intersectionThis的有效参数?很抱歉,如果我的问题不清楚:),但我想做的是一个RDD的每个元素与另一个RDD的交集。val output=a4.map(v=>v.intersect(a6)),我得到这个[ERROR]/LabWork/BigData/MiniProject/TwitterProject/src/main/scala/community/spark/twitter/TestPrint。scala:41:ERROR:value intersect不是Iterable[String]的成员,不与RDD相交。你说你可以把它储存在记忆里。这样做,将其存储为Seq,然后
a.map(u.interest(bAsSeq))
谢谢KrisP!我是按照你的建议做的,但在早些时候出现了类型转换错误。现在可以了。