оператор create не работает с функцией replace - PullRequest
0 голосов
/ 03 марта 2020

У меня есть следующий запрос, который фактически работает:

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 Недопустимая функция ' replace ': 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 голосов
/ 03 марта 2020

Попробуйте функцию regexp_replace:

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