You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "IKozar (Jira)" <ji...@apache.org> on 2022/04/07 17:51:00 UTC
[jira] [Created] (SPARK-38823) Incorrect result of dataset reduceGroups in java
IKozar created SPARK-38823:
------------------------------
Summary: Incorrect result of dataset reduceGroups in java
Key: SPARK-38823
URL: https://issues.apache.org/jira/browse/SPARK-38823
Project: Spark
Issue Type: Bug
Components: Java API
Affects Versions: 3.2.1
Reporter: IKozar
{code:java}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Item implements Serializable {
private String x;
private String y;
private int z;
public Item addZ(int z) {
return new Item(x, y, this.z + z);
}
} {code}
{code:java}
List<Item> items = List.of( new Item("X1", "Y1", 1), new Item("X2", "Y1", 1), new Item("X1", "Y1", 1), new Item("X2", "Y1", 1), new Item("X3", "Y1", 1), new Item("X1", "Y1", 1), new Item("X1", "Y2", 1), new Item("X2", "Y1", 1));
Dataset<Item> ds = spark.createDataFrame(items, Item.class).as(Encoders.bean(Item.class)); ds.groupByKey((MapFunction<Item, Tuple2<String, String>>) item -> Tuple2.apply(item.getX(), item.getY()), Encoders.tuple(Encoders.STRING(), Encoders.STRING())) .reduceGroups((ReduceFunction<Item>) (item1, item2) -> item1.addZ(item2.getZ())) .show(10);
{code}
result is
{noformat}
+--------+----------------------------------------------+
| key|ReduceAggregator(poc.job.JavaSparkReduce$Item)|
+--------+----------------------------------------------+
|{X1, Y1}| {X2, Y1, 2}|-- expected 3
|{X2, Y1}| {X2, Y1, 2}|-- expected 3
|{X1, Y2}| {X2, Y1, 1}|
|{X3, Y1}| {X2, Y1, 1}|
+--------+----------------------------------------------+{noformat}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org