create语句不适用于替换功能

时间:2020-03-03 08:49:08

标签: hive hiveql create-table

我有以下实际上有效的查询:

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:错误 编译语句时:FAILED:SemanticException行0:-1无效 函数“替换”: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 ......

因此,即使create语句不支持替换功能,我也应该以某种方式创建此表。在这种情况下,您能想到更合适的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试regexp_replace函数:

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