Deepak, Don't create from Ant Buildfile. Just import an existing project (create new java project -> uncheck "create in default location" -> point it at where you have the project checked out and where you ran ant eclipse-files). You might need to change the build path a bit, adding / removing jars and all that, but it should be pretty straightforward from there.
D On Tue, Mar 8, 2011 at 7:43 PM, deepak kumar v <[email protected]> wrote: > Hi, > Sure, will do that. > > Meanwhile, I tried to import pig src into eclipse using New project wizard > with "Create a Java Project from Ant Buildfile" option, i see the following > error > "Reference ${cp} not found" and it fails to import src code. A empty New > project "Pig" is created as a result. > > Before trying above i ran > > ant eclipse-files > > which ran to successful. > > > Regards, > > Deepak > > > On Wed, Mar 9, 2011 at 1:37 AM, Dmitriy Ryaboy <[email protected]> wrote: > >> Nice work. >> >> You are going to want to make sure COUNT also works on the scenarios it's >> supposed to work on. So far you only seem to be testing failures? >> >> Also, write it up as proper unit tests so we don't get regressions. >> >> D >> >> >> On Tue, Mar 8, 2011 at 10:40 AM, deepak kumar v <[email protected]>wrote: >> >>> Hi Dmitriy, >>> Will checkout TestBuiltins.java once my eclipse setup is ready. >>> Meanwhile i tried the couple of scenarios that you mentioned. >>> >>> 1) Schema defined for a >>> grunt> a = load 'test.txt' as (data:chararray); >>> grunt> b = group a all; >>> grunt> describe a; >>> a: {data: chararray} >>> grunt> describe b; >>> b: {group: chararray,a: {(data: chararray)}} >>> grunt> x = foreach b generate COUNT(a.data, a.data); >>> grunt> dump x; >>> 2011-03-09 00:06:40,953 [main] ERROR org.apache.pig.tools.grunt.Grunt - >>> ERROR 1045: Could not infer the matching function for >>> org.apache.pig.builtin.COUNT as multiple or none of them fit. Please use an >>> explicit cast. >>> >>> 2) Schema not defined for a >>> grunt> a = load 'test.txt'; >>> grunt> b = group a all; >>> grunt> describe a; >>> Schema for a unknown. >>> grunt> describe b; >>> b: {group: chararray,a: {(null)}} >>> grunt> x = foreach b generate COUNT(a.$0, a.$0); >>> grunt> dump x; >>> 2011-03-09 00:07:58,715 [main] ERROR org.apache.pig.tools.grunt.Grunt - >>> ERROR 1045: Could not infer the matching function for >>> org.apache.pig.builtin.COUNT as multiple or none of them fit. Please use an >>> explicit cast. >>> >>> >>> Changes seems to be working with both scenarios. >>> >>> Regards, >>> Deepak >>> >>> >>> >>> On Tue, Mar 8, 2011 at 10:45 PM, Dmitriy Ryaboy <[email protected]>wrote: >>> >>>> ant test doesn't hang, it just runs for a very long time. If you want to >>>> test something specific, you can name the test class like so: >>>> >>>> ant test -Dtestcase=TestBuiltins >>>> (this will run the tests in TestBuiltins.java) >>>> >>>> COUNT tests are probably in TestBuiltins or in TestAlgebraic. Look >>>> around. >>>> >>>> You definitely want to add some tests to make sure that COUNT still >>>> works on the cases where it's supposed to work, and that the Pig parser no >>>> longer allows COUNT with the wrong number or type of arguments. >>>> >>>> I would test in particular what happens when a bag is supplied for which >>>> a schema is known -- Pig might be making a distinction between a bag with a >>>> known schema and a bag with an unknown schema, and we definitely want both >>>> of those to work. >>>> >>>> D >>>> >>>> >>>> On Tue, Mar 8, 2011 at 1:58 AM, deepak kumar v <[email protected]>wrote: >>>> >>>>> Hi, >>>>> PFA patch of fix for PIG-671. Used the approach mentioned in previous >>>>> email. >>>>> I could not find any test cases for Count.java, besides ant test just >>>>> hung up. >>>>> >>>>> Output: >>>>> grunt> a = load 'test.txt'; >>>>> grunt> x = foreach a generate COUNT(a.$0,a.$0); >>>>> grunt> dump x; >>>>> 2011-03-08 14:45:03,408 [main] ERROR org.apache.pig.tools.grunt.Grunt - >>>>> ERROR 1045: Could not infer the matching function for >>>>> org.apache.pig.builtin.COUNT as multiple or none of them fit. Please use >>>>> an >>>>> explicit cast. >>>>> Details at logfile: >>>>> /Users/deepakkv/Documents/opensource/pig/working/pig_1299575686422.log >>>>> grunt> b = group a all; >>>>> grunt> x = foreach b generate COUNT(a.$0,a.$0); >>>>> grunt> dump x; >>>>> 2011-03-08 14:45:19,668 [main] ERROR org.apache.pig.tools.grunt.Grunt - >>>>> ERROR 1045: Could not infer the matching function for >>>>> org.apache.pig.builtin.COUNT as multiple or none of them fit. Please use >>>>> an >>>>> explicit cast. >>>>> Details at logfile: >>>>> /Users/deepakkv/Documents/opensource/pig/working/pig_1299575686422.log >>>>> grunt> quit >>>>> >>>>> Regards, >>>>> Deepak >>>>> >>>>> On Tue, Mar 8, 2011 at 12:12 PM, deepak kumar v >>>>> <[email protected]>wrote: >>>>> >>>>>> Hi Dmitriy, >>>>>> >>>>>> I was looking SUBSTRING.java and thats exactly(getArgToFuncMapping) >>>>>> what i am trying now with COUNT. >>>>>> Waiting for the build to complete and test out my changes before i >>>>>> could post this option. >>>>>> >>>>>> Regards, >>>>>> Deepak >>>>>> >>>>>> >>>>>> On Tue, Mar 8, 2011 at 11:56 AM, Dmitriy Ryaboy >>>>>> <[email protected]>wrote: >>>>>> >>>>>>> Actually I think if you just implement getArgToFuncMapping for COUNT, >>>>>>> where you only return a mapping for a single bag argument, pig will >>>>>>> notice >>>>>>> that the wrong number of args is supplied during the compilation phase >>>>>>> and >>>>>>> no runtime exceptions will be required. >>>>>>> >>>>>>> I haven't checked how well the funcSpec mapping works with Bags, >>>>>>> that's something to experiment with. >>>>>>> >>>>>>> D >>>>>>> >>>>>>> >>>>>>> On Mon, Mar 7, 2011 at 9:55 PM, deepak kumar v >>>>>>> <[email protected]>wrote: >>>>>>> >>>>>>>> Hi Pig Developers, >>>>>>>> This is my first dive into open source contribution and i hope to >>>>>>>> dive deep. >>>>>>>> >>>>>>>> I was going through https://issues.apache.org/jira/browse/PIG-671and >>>>>>>> observed the following with COUNT.java >>>>>>>> >>>>>>>> COUNT.exec() always retrieves the first item from input tuple which >>>>>>>> it >>>>>>>> assumes is a bag and counts the numbers of items in the bag. >>>>>>>> Even if we pass multiple arguments to COUNT(), it will always pick >>>>>>>> the first >>>>>>>> argument. >>>>>>>> >>>>>>>> There are few ways we go through this >>>>>>>> a) Leave as is cause it returns correct result for counting the >>>>>>>> number of >>>>>>>> items in the first argument. >>>>>>>> OR >>>>>>>> b) Make a check for the size of the input tuple in COUNT.exec() and >>>>>>>> if it is >>>>>>>> not 1 then throw ExecException() or IllegalArgumentException {might >>>>>>>> be >>>>>>>> correct} >>>>>>>> which will cause the Map job to fail. >>>>>>>> >>>>>>>> Let me know how to we go about it. >>>>>>>> >>>>>>>> >>>>>>>> Regards, >>>>>>>> Deepak >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
