You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@crunch.apache.org by da...@apache.org on 2016/01/19 10:39:20 UTC
crunch git commit: CRUNCH-587: Add missing filter(),
filterByKey() and filterByValue() functions from Lambda LTable
implementation
Repository: crunch
Updated Branches:
refs/heads/master 7d7af4ef4 -> e59cb17a4
CRUNCH-587: Add missing filter(), filterByKey() and filterByValue() functions from Lambda LTable implementation
Project: http://git-wip-us.apache.org/repos/asf/crunch/repo
Commit: http://git-wip-us.apache.org/repos/asf/crunch/commit/e59cb17a
Tree: http://git-wip-us.apache.org/repos/asf/crunch/tree/e59cb17a
Diff: http://git-wip-us.apache.org/repos/asf/crunch/diff/e59cb17a
Branch: refs/heads/master
Commit: e59cb17a4ddaee203c97f574be29cfc98ade246a
Parents: 7d7af4e
Author: David Whiting <da...@apache.org>
Authored: Mon Jan 18 15:07:13 2016 +0100
Committer: David Whiting <da...@apache.org>
Committed: Mon Jan 18 15:13:01 2016 +0100
----------------------------------------------------------------------
.../java/org/apache/crunch/lambda/LTable.java | 21 ++++++++++++++++++++
1 file changed, 21 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/crunch/blob/e59cb17a/crunch-lambda/src/main/java/org/apache/crunch/lambda/LTable.java
----------------------------------------------------------------------
diff --git a/crunch-lambda/src/main/java/org/apache/crunch/lambda/LTable.java b/crunch-lambda/src/main/java/org/apache/crunch/lambda/LTable.java
index 0b4e4fa..9f6616e 100644
--- a/crunch-lambda/src/main/java/org/apache/crunch/lambda/LTable.java
+++ b/crunch-lambda/src/main/java/org/apache/crunch/lambda/LTable.java
@@ -97,6 +97,27 @@ public interface LTable<K, V> extends LCollection<Pair<K, V>> {
}
/**
+ * Filter the rows of the table using the supplied predicate.
+ */
+ default LTable<K, V> filter(SPredicate<Pair<K, V>> predicate) {
+ return parallelDo(ctx -> { if (predicate.test(ctx.element())) ctx.emit(ctx.element());}, pType());
+ }
+
+ /**
+ * Filter the rows of the table using the supplied predicate applied to the key part of each record.
+ */
+ default LTable<K, V> filterByKey(SPredicate<K> predicate) {
+ return parallelDo(ctx -> { if (predicate.test(ctx.element().first())) ctx.emit(ctx.element());}, pType());
+ }
+
+ /**
+ * Filter the rows of the table using the supplied predicate applied to the value part of each record.
+ */
+ default LTable<K, V> filterByValue(SPredicate<V> predicate) {
+ return parallelDo(ctx -> { if (predicate.test(ctx.element().second())) ctx.emit(ctx.element());}, pType());
+ }
+
+ /**
* Join this table to another {@link LTable} which has the same key type using the provided {@link JoinType} and
* {@link JoinStrategy}
*/