Hello, >From the documentation I understand that it should be possible to filter a relation based on the equality of tuples.
http://hadoop.apache.org/pig/docs/r0.5.0/piglatin_reference.html#deref: ... Note 1: boolean (Tuple A is equal to tuple B if they have the same size s, and for all 0 <= i < s A[i] = = B[i]) ... However with this data file -- indext.txt: (1,one) (1,ONE) (2,two) (22, twentytwo) (3,three) (3,three) I run this pig script: A = LOAD 'indext.txt' AS (t1:(a:int, b:chararray), t2:(a:int, b:chararray)); B = FILTER A BY t1==t2; DUMP B; Expecting the output: ((3,three),(3,three)) However there is an error: 2010-02-03 09:05:20,523 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2067: EqualToExpr does not know how to handle type: tuple Pig Stack Trace --------------- ERROR 2067: EqualToExpr does not know how to handle type: tuple org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias B at org.apache.pig.PigServer.openIterator(PigServer.java:475) at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:532) at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser. java:190) at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:166 ) at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:142 ) at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:89) at org.apache.pig.Main.main(Main.java:397) Caused by: org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1002: Unable to store alias B at org.apache.pig.PigServer.store(PigServer.java:530) at org.apache.pig.PigServer.openIterator(PigServer.java:458) ... 6 more Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 2067: EqualToExpr does not know how to handle type: tuple at org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperat ors.EqualToExpr.getNext(EqualToExpr.java:108) at org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperat ors.POFilter.getNext(POFilter.java:148) at org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator .processInput(PhysicalOperator.java:231) at org.apache.pig.backend.local.executionengine.physicalLayer.counters.POCounte r.getNext(POCounter.java:71) at org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator .processInput(PhysicalOperator.java:231) at org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperat ors.POStore.getNext(POStore.java:117) at org.apache.pig.backend.local.executionengine.LocalPigLauncher.runPipeline(Lo calPigLauncher.java:146) at org.apache.pig.backend.local.executionengine.LocalPigLauncher.launchPig(Loca lPigLauncher.java:109) at org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(Lo calExecutionEngine.java:165) .... I am using pig 0.5 and hadoop .20.1. Have I misunderstood the feature or is this a bug? Thanks Neil ********************************************* The information contained in this message is likely to be confidential. It is intended only for the person named above. Any dissemination, distribution, copying, disclosure or use of this message or its contents unless authorised by BioWisdom Ltd is strictly prohibited. Any views or opinions expressed within this e-mail are those of the author and do not necessarily represent those of BioWisdom Ltd. If you have received this message in error, please immediately notify us and delete it. Thank you. Registered Office: BioWisdom Ltd, Harston Mill, Harston, Cambridge, CB22 7GG. Registered in England: (GB) 3861669. VAT registered: (GB) 750899881. Tel: +44 (0)1223 874800, Fax: +44 (0) 1223 874801, Internet:www.biowisdom.com *********************************************