hive sql 中换行字符的替换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive sql 中换行字符的替换相关的知识,希望对你有一定的参考价值。

参考技术A ···
CREATE TABLE IF NOT EXISTS test_wl7 as SELECT hive_query_id,
jobid,
TYPE,
task_count,
start_time,
finish_time,
max_task,
pre_task,
yarnuser,
regexp_replace(hive_query_string,
'\n|\r',
' ') hive_query_string,
update_user,
etl_tx_dt
FROM dev_test_dc.mapred_job_history_skew
WHERE etl_tx_dt=20190730 ;
···

采集的用户sql,分析后通过sqoop将hive(表的格式是textfile)导入到mysql中。因为sql中存在换行符。需要替换。注意是\n|\r.有个\r..

Java:可以在属性文件中换行吗?

【中文标题】Java:可以在属性文件中换行吗?【英文标题】:Java: possible to line break in a properties file? 【发布时间】:2011-07-31 09:00:44 【问题描述】:

是否可以在 Java 属性文件的下一行继续长字符串?

例如,不知何故

myStr=Hello
      World

当我收到getProperty("myStr") 时,它会返回“Hello World”?

【问题讨论】:

实际上,在 '\' 之后 MUST NOT NOT is nothing 甚至不能是空格,这非常重要 【参考方案1】:
myStr = Hello \
        World

反斜杠告诉应用程序继续将值读取到下一行。 ^^

【讨论】:

【参考方案2】:

行尾的反斜杠可让您跨越多行,并且忽略行首的空格:

myStr = Hello \
        World

注意:反斜杠必须在行尾;它必须是最后一个字符,后面不能有空格等。

Java docs 是这样说的:

逻辑行包含键元素对的所有数据,通过使用反斜杠字符 \ 转义行终止符序列,可以将其分布在多个相邻的自然行中。

...

如果逻辑行分布在多条自然行中,则转义行终止符序列的反斜杠、行终止符序列以及下一行开头的任何空白对键或元素值没有影响。

【讨论】:

【参考方案3】:

您需要使用\n\ 作为解决方案。

前两个符号 \n - 字符串换行,第三个 \ - 属性文件中的多行。

例如(在 application.properties 中):

mail.bodyText=Hello.\n\
This is notification.

【讨论】:

没有要求换行。

以上是关于hive sql 中换行字符的替换的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 怎么插入换行

java程序中换行符号怎样表示

python怎么做到在写入的TXT中换行

hive中 regexp_replace的用法,替换特殊字符问题

hive特殊字符的替换

请问在sql中字符串中换行怎么表示?