我的情况是:
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步。
只是字符串替换无济于事,因为在许多情况下这种方法都不起作用