You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by fo...@apache.org on 2020/01/05 18:26:00 UTC

[parquet-mr] branch master updated: PARQUET-1731: Use JDK 8 Facilities to Simplify FilteringRecordMaterializer (#719)

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 <12...@users.noreply.github.com>
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