gpt4 book ai didi

java - Spark Streaming 在 PairDStream 中为每个键获取一个元素

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:17 24 4
gpt4 key购买 nike

简单的问题:是否有任何实际有效的方法来获取由每个键一个键值对组成的 dstream?伪代码:

myKeyValueDStream = {(A,miao-1-3),
(A,miao-2-4),
(A,miao-5-6),
(B,bau-1-2),
(B,bau-3-4),
(C,cip-1-2),
(C,cip-3-4)}
singleLineDStream = myKeyValueDStream.takeOneElementPerKey();
//I don't care which one; the first one would be fine
singleLineDStream.print() // {(A,miao-1-3),(B,bau-1-2),(C,cip-1-2)}

我现在的解决方案(对 Java 7 表示歉意):

JavaPairDstream<String,String[]> singleLineDStream = pairdDstream.reduceByKey(new Function2<String[],String[],String[]>(){
@Override
public String[] call(String[] arg0, String[] arg1) throws Exception {
return arg0;
}
});

是否有更好的方法为每个键获取一个元素?使用您想要的解决方案的任何语言。

最佳答案

可以做的一件事是在 RDD 上使用 CollectAsMap 函数,将其用作字典,其中每个键包含一个值。之后就可以将字典转换为带有键值对的列表。

就像这个 Pyspark Code Image

关于java - Spark Streaming 在 PairDStream 中为每个键获取一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729247/

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