You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Greg Hogan (JIRA)" <ji...@apache.org> on 2015/09/15 14:52:46 UTC
[jira] [Comment Edited] (FLINK-2668) ProjectOperator method to
close projection
[ https://issues.apache.org/jira/browse/FLINK-2668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14745391#comment-14745391 ]
Greg Hogan edited comment on FLINK-2668 at 9/15/15 12:52 PM:
-------------------------------------------------------------
The project methods work well, particularly for interleaving elements from joined {DataSet}s. The issue I had was in composing multiple custom library algorithms. The first call finished with a projection:
{code}
...
DataSet<Tuple2<T,T>> result = data
.partitionByHash(2)
.sortPartition(2, Order.ASCENDING)
.project(0, 1);
return result;
{code}
and the second call started with a projection:
{code}
DataSet<Tuple1<T>> first = this.data
.<Tuple1<T>>project(0)
.distinct();
...
{code}
My workaround was to replace the first projection with a simple map function.
was (Author: greghogan):
The project methods work well, particularly for interleaving elements from joined {DataSet}s. The issue I had was in composing multiple custom library algorithms. The first call finished with a projection:
{code}
...
DataSet<Tuple2<T,T>> result = data
.partitionByHash(2)
.sortPartition(2, Order.ASCENDING)
.project(0, 1);
return result;
{code}
and the second call started with a projection.
{code}
DataSet<Tuple1<T>> first = this.data
.<Tuple1<T>>project(0)
.distinct();
...
{code}
My workaround was to replace the first projection with a simple map function.
> ProjectOperator method to close projection
> ------------------------------------------
>
> Key: FLINK-2668
> URL: https://issues.apache.org/jira/browse/FLINK-2668
> Project: Flink
> Issue Type: Improvement
> Components: Java API
> Affects Versions: master
> Reporter: Greg Hogan
> Priority: Minor
>
> I have come across an issue in my code where I called project(...) on a {{DataSet}} which was already a {{ProjectOperator}}. Instead of reducing the number of fields from 2 to 1 this instead increased the number of fields from 2 to 3 resulting in {{org.apache.flink.api.common.functions.InvalidTypesException: Input mismatch: Tuple arity '3' expected but was '1'.}} when processing the next operator.
> This can be resolved by adding an optional explicit call to conclude the projection, perhaps {{ProjectOperator.closeProjection()}}. Can this be done without creating a new no-op operator?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)