【问题标题】:create statement does not work with replace functioncreate 语句不适用于替换功能
【发布时间】:2020-03-03 08:49:08
【问题描述】:

我有以下实际工作的查询:

SELECT replace(z.PRODUCT_TITLE,'''','') as PRODUCTTITLE, z.NICK FROM table1 z WHERE NICK<=200

但是当我使用 create 语句执行相同的查询时,我收到以下错误:

创建表table2为

SELECT replace(z.PRODUCT_TITLE,'''','') as PRODUCTTITLE, z.NICK FROM table1 z WHERE NICK<=200

处理查询/语句时出错。错误代码:40000,SQL 状态: TStatus(statusCode:ERROR_STATUS, infoMessages:[*org.apache.hive.service.cli.HiveSQLException:错误 编译语句时:失败:SemanticException Line 0:-1 Invalid 功能“替换”:17:16, org.apache.hive.service.cli.operation.Operation:toSQLException:Operation.java:400, org.apache.hive.service.cli.operation.SQLOperation:prepare:SQLOperation.java:187, org.apache.hive.service.cli.operation.SQLOperation:runInternal:SQLOperation.java:271, org.apache.hive.service.cli.operation.Operation:run:Operation.java:337......

所以,即使创建语句不支持替换功能,我也应该以某种方式创建这个表。你能想出更适合这种情况的方法吗?

提前致谢。

【问题讨论】:

    标签: hive hiveql create-table


    【解决方案1】:

    试试regexp_replace函数:

     select regexp_replace(z.PRODUCT_TITLE,'\\'','')  --removes single-quote character
    

    【讨论】:

    • 非常感谢!在这种情况下替换功能不起作用的原因是什么?
    • @MuratAdilCanYıldız 我不知道原因。在 Hive 1.3 中添加了替换,以前它只是 regexp_replace。也许是一些错误
    猜你喜欢
    • 2021-01-29
    • 2011-12-09
    • 1970-01-01
    • 2012-02-27
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2015-11-27
    相关资源
    最近更新 更多