Skip to content

Commit 04cf4a1

Browse files
authored
[ML] [Data Frame] nesting group_by fields like other aggs (#42718)
1 parent a794736 commit 04cf4a1

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

x-pack/plugin/data-frame/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/dataframe/integration/DataFramePivotRestIT.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -251,10 +251,10 @@ public void testPreviewTransform() throws Exception {
251251

252252
config += " \"pivot\": {"
253253
+ " \"group_by\": {"
254-
+ " \"reviewer\": {\"terms\": { \"field\": \"user_id\" }},"
254+
+ " \"user.id\": {\"terms\": { \"field\": \"user_id\" }},"
255255
+ " \"by_day\": {\"date_histogram\": {\"fixed_interval\": \"1d\",\"field\":\"timestamp\",\"format\":\"yyyy-MM-dd\"}}},"
256256
+ " \"aggregations\": {"
257-
+ " \"avg_rating\": {"
257+
+ " \"user.avg_rating\": {"
258258
+ " \"avg\": {"
259259
+ " \"field\": \"stars\""
260260
+ " } } } }"
@@ -265,10 +265,14 @@ public void testPreviewTransform() throws Exception {
265265
List<Map<String, Object>> preview = (List<Map<String, Object>>)previewDataframeResponse.get("preview");
266266
// preview is limited to 100
267267
assertThat(preview.size(), equalTo(100));
268-
Set<String> expectedFields = new HashSet<>(Arrays.asList("reviewer", "by_day", "avg_rating"));
268+
Set<String> expectedTopLevelFields = new HashSet<>(Arrays.asList("user", "by_day"));
269+
Set<String> expectedNestedFields = new HashSet<>(Arrays.asList("id", "avg_rating"));
269270
preview.forEach(p -> {
270271
Set<String> keys = p.keySet();
271-
assertThat(keys, equalTo(expectedFields));
272+
assertThat(keys, equalTo(expectedTopLevelFields));
273+
Map<String, Object> nestedObj = (Map<String, Object>)p.get("user");
274+
keys = nestedObj.keySet();
275+
assertThat(keys, equalTo(expectedNestedFields));
272276
});
273277
}
274278

x-pack/plugin/data-frame/src/main/java/org/elasticsearch/xpack/dataframe/transforms/pivot/AggregationResultUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public static Stream<Map<String, Object>> extractCompositeAggregationResults(Com
6161
groups.getGroups().keySet().forEach(destinationFieldName -> {
6262
Object value = bucket.getKey().get(destinationFieldName);
6363
idGen.add(destinationFieldName, value);
64-
document.put(destinationFieldName, value);
64+
updateDocument(document, destinationFieldName, value);
6565
});
6666

6767
List<String> aggNames = aggregationBuilders.stream().map(AggregationBuilder::getName).collect(Collectors.toList());

0 commit comments

Comments
 (0)