Apache spark 对Spark RDD中相同数量的键进行采样

Apache spark 对Spark RDD中相同数量的键进行采样,apache-spark,partition,Apache Spark,Partition,我有一个键值RDD,其中的键可以是1和5之间的任意值。RDD中的记录数以百万为单位。我需要输出RDD,每个键有10000条记录 3个不同键的示例RDD[(字符串,字符串)]: 1 a 2 b 3 b 2 c 1 d 2 e 2 f 2 c 1 d 3 e 2 f 如果我需要每个键的两条任意两条记录,输出可能是: 1 a 1 f 2 c 2 d 3 c 3 d 您需要在RDD上使用reduceByKey来计算每次显示的次数,然后使用filter只获取那些count>10000sampleByK

我有一个键值RDD,其中的键可以是
1
5
之间的任意值。RDD中的记录数以百万为单位。我需要输出RDD,每个键有10000条记录

3个不同键的示例RDD[(字符串,字符串)]:

1 a
2 b
3 b
2 c
1 d
2 e
2 f
2 c
1 d
3 e
2 f
如果我需要每个键的两条任意两条记录,输出可能是:

1 a
1 f
2 c
2 d
3 c
3 d

您需要在
RDD
上使用
reduceByKey
来计算每次显示的次数,然后使用
filter
只获取那些
count>10000
sampleByKeyExact
的用户应该做到以下几点:

def sampleByKeyUniform[T:ClassTag,U:ClassTag](
rdd:rdd[(T,U)],n:Long,with replacement:Boolean=false)={
rdd.sampleByKeyExact(带替换件),
map{case(k,v)=>k->n.toDouble/v})
}

我不明白你应该澄清什么是a、b、c。。。你喜欢的结构是什么?你在做这件事时遇到了什么问题?与您期望的相比,您得到的实际输出是什么?reduceByKey不是一个选项。数据集非常庞大,这就是我为什么要取样的原因。还原比然后取相等的样本需要很长时间。不过谢谢你的回答。