如何测试一个值是否是RDD的键
How to test if a value is a key of an RDD
我是 Spark 和 Scala 的新手,我想测试一个值是否是来自 RDD 的键。
我的数据是这样的:
RDD data: key -> value
RDD stat: key -> statistics
我想做的是过滤掉stat中有key的data中的所有key-value对
我的大体思路是将一个RDD的key转成一个set,然后判断一个value是否属于这个set?
是否有更好的方法,以及如何使用 Scala 将 RDD 的键转换为集合?
谢谢。
您可以使用lookup
def lookup(key: K): List[V]
Return the list of values in the RDD for key key. This operation is
done efficiently if the RDD has a known partitioner by only searching
the partition that the key maps to.
你问 -
What I want to do is to filter all the key-value pairs in data that
has the key in stat.
我认为你应该 join
按键而不是 lookup
。
join(otherDataset, [numTasks])
When called on datasets of type (K, V) and (K, W), returns a dataset
of (K, (V, W)) pairs with all pairs of elements for each key. Outer
joins are supported through leftOuterJoin, rightOuterJoin, and
fullOuterJoin.
.
"close over an RDD inside another RDD."
基本上在另一个 RDD 的转换(在本例中 filter
)中使用一个 RDD。
Spark 不允许将一个 RDD 嵌套在另一个 RDD 中。
我是 Spark 和 Scala 的新手,我想测试一个值是否是来自 RDD 的键。
我的数据是这样的:
RDD data: key -> value
RDD stat: key -> statistics
我想做的是过滤掉stat中有key的data中的所有key-value对
我的大体思路是将一个RDD的key转成一个set,然后判断一个value是否属于这个set?
是否有更好的方法,以及如何使用 Scala 将 RDD 的键转换为集合?
谢谢。
您可以使用lookup
def lookup(key: K): List[V]
Return the list of values in the RDD for key key. This operation is done efficiently if the RDD has a known partitioner by only searching the partition that the key maps to.
你问 -
What I want to do is to filter all the key-value pairs in data that has the key in stat.
我认为你应该 join
按键而不是 lookup
。
join(otherDataset, [numTasks])
When called on datasets of type (K, V) and (K, W), returns a dataset of (K, (V, W)) pairs with all pairs of elements for each key. Outer joins are supported through leftOuterJoin, rightOuterJoin, and fullOuterJoin.
.
"close over an RDD inside another RDD."
基本上在另一个 RDD 的转换(在本例中 filter
)中使用一个 RDD。
Spark 不允许将一个 RDD 嵌套在另一个 RDD 中。