Hive 如何在从配置单元表中选择时替换新行字符

Hive 如何在从配置单元表中选择时替换新行字符,hive,pyspark-sql,Hive,Pyspark Sql,我在HIVE中有一个AVRO格式的表。该表中的一列(字符串数据类型)包含具有新行字符的数据,因此当我选择(使用beeline或pyspark)时,我会得到多行。我在select中尝试了REGEXP_REPLACE(col1,“\n”,”)选项,但它仍然返回多行 在文本编辑器中复制和粘贴时,col1的值如下所示: NY - Enjoy holidays or Enjoy leaves. Silver 2000 plan Silver 2000 plan CSR 1 Silver 2000 pl

我在HIVE中有一个AVRO格式的表。该表中的一列(字符串数据类型)包含具有新行字符的数据,因此当我选择(使用beeline或pyspark)时,我会得到多行。我在select中尝试了REGEXP_REPLACE(col1,“\n”,”)选项,但它仍然返回多行

在文本编辑器中复制和粘贴时,col1的值如下所示:

NY - Enjoy holidays or Enjoy leaves.  
Silver 2000 plan
Silver 2000 plan CSR 1
Silver 2000 plan CSR 2
Gold 600 plan
Enjoy, holidays then leaves for ER, UC and old age only.  Primary holidays not subject to Enjoy.
这里有什么替代方案?

试试这个

regexp\u replace(col1,\\\\n',”)

示例

hive> select * from temp.test4;
OK
1   abc\nxyz
Time taken: 0.169 seconds, Fetched: 1 row(s)
hive> select id, regexp_replace(value, '\\\\n', "") from temp.test4;
OK
1   abcxyz
试试这个

regexp\u replace(col1,\\\\n',”)

示例

hive> select * from temp.test4;
OK
1   abc\nxyz
Time taken: 0.169 seconds, Fetched: 1 row(s)
hive> select id, regexp_replace(value, '\\\\n', "") from temp.test4;
OK
1   abcxyz

它用regexp_replace(regexp_replace(col1),\r'。我试过直线和新线没有得到适当的更换。我在pyspark中进行了尝试,结果返回的值为null。表中的值是什么样子的?这是我表示的方式吗?不是。从视觉上看,我看不到数据中的\n内容。但是,当我复制数据并将其粘贴到文本编辑器中时,它以多行显示。实际上,在pyspark中,它打印的是最后一行“享受,假期然后只留给ER、UC和老年人。主要假期不受享受影响。”使用regexp_replace(col1,'\\n','')它实际上是数据中的回车,并用regexp_replace解决(regexp_替换(col1,'\\r','','\\n','')我没有正确获取输出。我尝试使用直线,但换行符没有正确替换。我尝试使用pyspark,结果返回的值为Null。表中的值是什么样子的?是我表示的方式吗?不是。从视觉上看,我看不到数据中的\n内容。但是当我复制数据并将其粘贴到文本编辑器中时,它显示为m多行。实际上,在pyspark中,它打印的是最后一行“享受,假期然后只为ER、UC和老年人离开。主要假期不受享受。”使用regexp_替换(col1,\\n','')实际上是数据中的回车,并用regexp_替换(regexp_替换(col1,\\r','','\\n','')进行解析