微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hive 创建表的多个转义字符

如何解决hive 创建表的多个转义字符

我正在尝试将带有管道分隔符的 csv 加载到配置单元外部表。数据值包含单引号、双引号、括号等。使用 Open CSV 2.3 版

测试文件.csv

id|name|phone
1|Rahul|123
2|Kumar's|456
3|Neetu"s|789
4|ravi [Roma]|234

表创建为 -

drop table test_schema.hive_test;
CREATE EXTERNAL TABLE test_schema.hive_test (id string,name string,phone string) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES
(
'separatorChar' = '|','quoteChar' = '[\'\"]','escapeChar' = '\\'
)
LOCATION '/staging/test/hive'
tblproperties ("skip.header.line.count"="1");

输出 -

+-------------+---------------+----------------+
| hive_test.id|hive_test.name |hive_test.phone |
+-------------+---------------+----------------+
| 1           | Rahul         |123             |
| 2           | Kumar's       |456             |
| 3           | Neetu"s       |789             |
| 4           | NULL          |234             |
+---------------+------------------------------+

预期输出 -

+-------------+---------------+----------------+
| hive_test.id|hive_test.name |hive_test.phone |
+-------------+---------------+----------------+
| 1           | Rahul         |123             |
| 2           | Kumar's       |456             |
| 3           | Neetu"s       |789             |
| 4           | ravi [Roma]   |234             |
+---------------+------------------------------+

问题是我们在数据中有多个转义序列/引号字符,因此我们需要包括所有这些。

解决方法

使用 LazySimpleSerDe(存储为文本文件):

CREATE EXTERNAL TABLE test_schema.hive_test (id string,name string,phone string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION '/staging/test/hive_test'
tblproperties ("skip.header.line.count"="1");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?