PlannerException: could not build flow from assembly: [[formatting output text...][finderbots.utilities.MergeMinerDataWorkflow.createFlow(MergeMinerDataWorkflow.java:195)] unable to resolve output selector: [{2}:'PreferenceDatum-text user id', 'PreferenceDatum-text item id'], with incoming: [{2}:'PreferenceDatum-text user id', 'PreferenceDatum-text item id'] and declared: [{2}:'PreferenceDatum-text user id', 'PreferenceDatum-text item id']]Huh?
Caused by: cascading.tuple.TupleException: field name already exists: PreferenceDatum-text user id
--
You received this message because you are subscribed to the Google Groups "cascading-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cascading-use...@googlegroups.com.
To post to this group, send email to cascadi...@googlegroups.com.
Visit this group at http://groups.google.com/group/cascading-user?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
I am manipulating pairs of strings? I've created a PreferenceDatum type that encapsulated the pair of strings and use the fields from it pretty much all the way through the flow. But for some reason that baffles me I get errors throughout. What are the rules for field names?I get exceptions for the following:PlannerException: could not build flow from assembly: [[formatting output text...][finderbots.utilities.MergeMinerDataWorkflow.createFlow(MergeMinerDataWorkflow.java:195)] unable to resolve output selector: [{2}:'PreferenceDatum-text user id', 'PreferenceDatum-text item id'], with incoming: [{2}:'PreferenceDatum-text user id', 'PreferenceDatum-text item id'] and declared: [{2}:'PreferenceDatum-text user id', 'PreferenceDatum-text item id']]Huh?further down in the same exception trace I getCaused by: cascading.tuple.TupleException: field name already exists: PreferenceDatum-text user idIn every place that calls for a Fields instance i'm passing in "MyDatum.FIELDS"RegexSplitter regexSplitter = new RegexSplitter( PreferenceDatum.FIELDS, "," );Pipe importPipe = new Each( "import preferences", new Fields( "line" ), regexSplitter, PreferenceDatum.FIELDS );
Pipe switchIDsPipe = new Pipe("swithed to create followed-by relationship", importPipe);error--> switchIDsPipe = new Each(switchIDsPipe,PreferenceDatum.FIELDS,
new SwitchIDsOperation(PreferenceDatum.FIELDS),
PreferenceDatum.FIELDS);
Clearly there are some rules about field names that I haven't absorbed.
I'm treating them like a set of class names. There must be some rule that in certain cases they must be unique like an instance name? Obviously passing MyDatum.FIELDS everywhere is wrong, maybe there must be new instances of the Fields class in some cases? Why is it bad to have "field name already exists"?Can't I just have one datum class and use it everywhere if there is no change in the types of data or must I have new names in certain cases. If the later I have tried several methods of changing the names and the pattern escapes me.
--
You received this message because you are subscribed to the Google Groups "cascading-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cascading-use...@googlegroups.com.
To post to this group, send email to cascadi...@googlegroups.com.
Visit this group at http://groups.google.com/group/cascading-user?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
But if you don't want to use field names, don't. they are not required, they are only there for humans.
but if you do use them, you cannot ever have two fields in the stream with the same name.