diff options
author | Wenchen Fan <wenchen@databricks.com> | 2016-06-29 06:39:28 +0800 |
---|---|---|
committer | Cheng Lian <lian@databricks.com> | 2016-06-29 06:39:28 +0800 |
commit | 8a977b065418f07d2bf4fe1607a5534c32d04c47 (patch) | |
tree | c1a233fa275dbfab66afec7b1728e98eb7b2af28 /examples/src/main | |
parent | 25520e976275e0d1e3bf9c73128ef4dec4618568 (diff) | |
download | spark-8a977b065418f07d2bf4fe1607a5534c32d04c47.tar.gz spark-8a977b065418f07d2bf4fe1607a5534c32d04c47.tar.bz2 spark-8a977b065418f07d2bf4fe1607a5534c32d04c47.zip |
[SPARK-16100][SQL] fix bug when use Map as the buffer type of Aggregator
## What changes were proposed in this pull request?
The root cause is in `MapObjects`. Its parameter `loopVar` is not declared as child, but sometimes can be same with `lambdaFunction`(e.g. the function that takes `loopVar` and produces `lambdaFunction` may be `identity`), which is a child. This brings trouble when call `withNewChildren`, it may mistakenly treat `loopVar` as a child and cause `IndexOutOfBoundsException: 0` later.
This PR fixes this bug by simply pulling out the paremters from `LambdaVariable` and pass them to `MapObjects` directly.
## How was this patch tested?
new test in `DatasetAggregatorSuite`
Author: Wenchen Fan <wenchen@databricks.com>
Closes #13835 from cloud-fan/map-objects.
Diffstat (limited to 'examples/src/main')
0 files changed, 0 insertions, 0 deletions