我有一个数据集 <Tuple2<String, Double>>
如下:
<A,1>
<B,2>
<C,2>
<A,2>
<B,3>
<B,4>
并且需要使用 Spark Java API 将其减少字符串以对值求和,以便最终结果应如下所示:
<A,3>
<B,9>
<C,2>
我应该使用Reduce、Agg、Group还是GroupByKey?以及如何?
最佳答案
假设您有数据集
Dataset<Tuple2<String, Double>> ds = ..;
然后您可以调用groupBy
功能和sum
像下面这样
ds.groupBy(col("_1")).sum("_2").show();
或者您可以将其转换为 Dataset<Row>
并调用groupBy
功能
Dataset<Row> ds1 = ds.toDF("key","value");
ds1.groupBy(col("key")).sum("value").show();
关于java - Spark 数据集 : Reduce, 数据集的 Agg、Group 或 GroupByKey <Tuple2> Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45785594/