使用HiveParser从已解析的ASTNode树中获取字符串查询

时间:2018-11-14 02:47:01

标签: sql hive hiveql abstract-syntax-tree sql-parser

我的情况是:
1.使用HiveParser解析字符串sql查询:
SELECT pageid, adid FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid
2.解析后,我得到了这样的ASTNode树:

nil
TOK_QUERY
  TOK_FROM
     TOK_LATERAL_VIEW
        TOK_SELECT
           TOK_SELEXPR
              TOK_FUNCTION
                 explode
                 TOK_TABLE_OR_COL
                    adid_list
              adid
              TOK_TABALIAS
                 adTable
        TOK_TABREF
           TOK_TABNAME
              pageAds
  TOK_INSERT
     TOK_DESTINATION
        TOK_DIR
           TOK_TMP_FILE
     TOK_SELECT
        TOK_SELEXPR
           TOK_TABLE_OR_COL
              pageid
        TOK_SELEXPR
           TOK_TABLE_OR_COL
              adid
<EOF>  

3。然后,我需要将tableName从pageAds更改为pageAds_uniqueSuffix
4.最后,我应该再次将该ASTNode树解析为一个字符串查询,它看起来应该像:
SELECT pageid, adid FROM pageAds_uniqueSuffix LATERAL VIEW explode(adid_list) adTable AS adid

==================================
我管理了前2个步骤,但实际上停留在第4步。 只是字符串替换无济于事,因为在许多情况下这种方法都不起作用

0 个答案:

没有答案