rug*_*rag 4 java tuples keyvaluepair apache-spark rdd
我有一些对CW(整数I,串词)我数的出现次数的单词在文本文件中.
我想简单地为每对配对一个带有1个固定数字的新对c1(整数i,1).
这似乎是微不足道的,但我还没有理解map/mapToPair函数实际上是如何工作的.
JavaPairRDD<Integer, Integer> c1 = cw.map(??? -> new Tuple2<Integer, Integer>(??, 1));
Run Code Online (Sandbox Code Playgroud)
我正在使用Java-8.
如果我理解正确的话,那你就得到了JavaPairRDD.
JavaPairRDD<Integer, String> cw = ...;
Run Code Online (Sandbox Code Playgroud)
现在,您要在第二个值为1的JavaPairRDD下创建.
JavaPairRDD<Integer, Integer> c1;
Run Code Online (Sandbox Code Playgroud)
为了得到这个,首先你必须从cw
JavaPairRDD中提取JavaRDD ,为此你必须调用map
如下的函数.我们将从对中提取第一个值.
JavaRDD<Integer> cw1 = cw.map(tuple -> tuple._1());
Run Code Online (Sandbox Code Playgroud)
现在,您将使用mapToPair
如下函数从JavaRDD创建新的JavaPairRDD .
JavaPairRDD<Integer, Integer> c1 = cw1.mapToPair(i -> new Tuple2<Integer, Integer>(i, 1));
Run Code Online (Sandbox Code Playgroud)
在单行中你可以写它
JavaPairRDD<Integer, Integer> c1 = cw.map(tuple -> tuple._1()).mapToPair(i -> new Tuple2<Integer, Integer>(i, 1));
Run Code Online (Sandbox Code Playgroud)