This is an automated email from the ASF dual-hosted git repository.
fokko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-mr.git
The following commit(s) were added to refs/heads/master by this push:
new a7447f6 PARQUET-1731: Use JDK 8 Facilities to Simplify
FilteringRecordMaterializer (#719)
a7447f6 is described below
commit a7447f698e5d8a1fff5b1542a70e42273b1b6373
Author: belugabehr <[email protected]>
AuthorDate: Sun Jan 5 13:25:54 2020 -0500
PARQUET-1731: Use JDK 8 Facilities to Simplify FilteringRecordMaterializer
(#719)
---
.../recordlevel/FilteringRecordMaterializer.java | 34 +++++++---------------
1 file changed, 10 insertions(+), 24 deletions(-)
diff --git
a/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
b/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
index d8fa677..37a031d 100644
---
a/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
+++
b/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
@@ -18,11 +18,12 @@
*/
package org.apache.parquet.filter2.recordlevel;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import org.apache.parquet.hadoop.metadata.ColumnPath;
import
org.apache.parquet.filter2.recordlevel.IncrementallyUpdatedFilterPredicate.ValueInspector;
@@ -61,31 +62,20 @@ public class FilteringRecordMaterializer<T> extends
RecordMaterializer<T> {
this.delegate = checkNotNull(delegate, "delegate");
// keep track of which path of indices leads to which primitive column
- Map<List<Integer>, PrimitiveColumnIO> columnIOsByIndexFieldPath = new
HashMap<List<Integer>, PrimitiveColumnIO>();
+ Map<List<Integer>, PrimitiveColumnIO> columnIOsByIndexFieldPath = new
HashMap<>();
for (PrimitiveColumnIO c : columnIOs) {
- columnIOsByIndexFieldPath.put(getIndexFieldPathList(c), c);
+ List<Integer> indexFieldPath = Arrays.stream(c.getIndexFieldPath())
+ .boxed().collect(Collectors.toList());
+ columnIOsByIndexFieldPath.put(indexFieldPath, c);
}
// create a proxy for the delegate's root converter
this.rootConverter = new FilteringGroupConverter(
- delegate.getRootConverter(), Collections.<Integer>emptyList(),
valueInspectorsByColumn, columnIOsByIndexFieldPath);
+ delegate.getRootConverter(), Collections.emptyList(),
+ valueInspectorsByColumn, columnIOsByIndexFieldPath);
}
- public static List<Integer> getIndexFieldPathList(PrimitiveColumnIO c) {
- return intArrayToList(c.getIndexFieldPath());
- }
-
- public static List<Integer> intArrayToList(int[] arr) {
- List<Integer> list = new ArrayList<Integer>(arr.length);
- for (int i : arr) {
- list.add(i);
- }
- return list;
- }
-
-
-
@Override
public T getCurrentRecord() {
@@ -95,12 +85,8 @@ public class FilteringRecordMaterializer<T> extends
RecordMaterializer<T> {
// reset the stateful predicate no matter what
IncrementallyUpdatedFilterPredicateResetter.reset(filterPredicate);
- if (keep) {
- return delegate.getCurrentRecord();
- } else {
- // signals a skip
- return null;
- }
+ // null - signals a skip
+ return (keep) ? delegate.getCurrentRecord() : null;
}
@Override