btw, what error are you getting with ANTLR or HiveParser? If any dependency class file is missing?
Thanks Alok On Thu, Nov 6, 2014 at 12:59 PM, Alok Kumar <alok...@gmail.com> wrote: > As Devopam suggested, do it right way from the start. > > PS : if queries are written manually, you could get tables too manually. > :) > > Thanks > Alok > > On Wed, Nov 5, 2014 at 6:44 PM, Devopam Mittra <devo...@gmail.com> wrote: > >> hi Ritesh, >> Please reconsider your entire design , it might be helpful to do it now >> than becoming unmanageable later. >> >> If unavoidable, please use a metadata based approach for pre-calculating >> and keeping the list of tables that you need to refresh prior to firing a >> query on them (?) >> >> Hope it helps. >> >> regards >> Devopam >> >> >> On Wed, Nov 5, 2014 at 6:20 PM, Ritesh Gautam <grites...@gmail.com> >> wrote: >> >>> hey Alok, >>> I want to do this so that I can refresh the dependent tables before I >>> run my query, so that my query would now run on the current data. >>> >>> The queries are written manually, so that the only way to do this will >>> be to parse the query. >>> Isn't Hive somewhat different from SQL? I have already tried using >>> JsqlParser but for some cases it doesn't works. >>> >>> Thanks, >>> Regards, >>> Ritesh >>> >>> On Wed, Nov 5, 2014 at 6:05 PM, Alok Kumar <alok...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> Why at the first place you would want this? ( just curious ) >>>> >>>> Few thoughts - >>>> a) Try to get it from the piece of code where these query are being >>>> generated [ if not static in code!], that would be best place to get it. >>>> b) [ if you don't have access to a) ] - try http://zql.sourceforge.net/ >>>> , it should be easier. Also check the licence. >>>> >>>> Thanks >>>> Alok >>>> >>>> On Wed, Nov 5, 2014 at 5:47 PM, Ritesh Gautam <grites...@gmail.com> >>>> wrote: >>>> >>>>> Hello, >>>>> I am trying to parse hive queries so that I can get the table >>>>> names on which the query is dependent on. >>>>> >>>>> I have tried the following : >>>>> 1) downloaded the grammer and used ANTLR to generate the lexer and >>>>> parser, but there are some errors as such when I try to build it: >>>>> ...... >>>>> symbol: class RecognitionException >>>>> location: class HiveLexer >>>>> HiveLexer.java:2432: error: cannot find symbol >>>>> public final void mKW_ESCAPED() throws RecognitionException { >>>>> ^ >>>>> symbol: class RecognitionException >>>>> location: class HiveLexer >>>>> HiveLexer.java:2453: error: cannot find symbol >>>>> public final void mKW_COLLECTION() throws RecognitionException { >>>>> ^ >>>>> symbol: class RecognitionException >>>>> location: class HiveLexer >>>>> 100 errors >>>>> >>>>> 2) I have tried using org.apache.hadoop.hive.ql.parse but I am stuck >>>>> at this point: >>>>> >>>>> ANTLRStringStream input = new ANTLRStringStream("SELECT x FROM >>>>> abc"); >>>>> HiveLexer lexer = new HiveLexer(input); >>>>> TokenStream tokens = new CommonTokenStream(lexer); >>>>> HiveParser parser = new HiveParser(tokens); >>>>> System.out.println(parser.statement()); >>>>> >>>>> *How should I proceed from here to extract the table names and column >>>>> names?* >>>>> *And, Is the way I am doing it correct?* >>>>> >>>>> Thank You. >>>>> Regards, >>>>> Ritesh >>>>> >>>>> >>>> >>>> >>>> -- >>>> Alok Kumar >>>> http://sharepointorange.blogspot.in/ >>>> >>> >>> >> >> >> -- >> Devopam Mittra >> Life and Relations are not binary >> > > > > -- Alok Kumar BigData Developer | DataRPM Email : alok...@gmail.com http://sharepointorange.blogspot.in/ http://www.linkedin.com/in/alokawi