【发布时间】:2018-12-09 21:13:51
【问题描述】:
我正在使用 Sqoop 将数据从 Mysql 导入 Hive。
但是,我在分隔符方面遇到了一些问题。实际上,我知道我可以通过为我的 Hive 表使用正确的分隔符来解决我的问题,因此它可以很好地读取我提供给它的文件。
但是,我搜索了几个小时,仍然找不到任何关于哪些字符可以用作字段分隔符的文档?!
能否请您帮我找出可以用作字段分隔符的确切字符类型?以及使用哪种格式/编码来指定它?
在关于 confluence 的 Hive 官方文档中,我只能找到:
row_format
: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
[NULL DEFINED AS char] -- (Note: Available in Hive 0.13 and later)
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
但是,“char”代表什么?
提前致谢!
【问题讨论】:
-
单个 ASCII-7 字符。不适用于
¤(这是一个 UTF-8 字符,而不是基本 ASCII 字符)或#EOF#\n(多个字符)。在使用 octal 表示法时,您可以使用特殊的控制字符,例如\013表示 Ascii 11 或VT -
您可能想要使用 OpenCsvSerde 代替默认的 Hive TEXT SerDe,它更通用(但速度较慢,并且不支持相同的选项)