我正在使用Sqoop将数据从Mysql导入到Hive。
但是,我在定界符方面遇到了一些问题。实际上,我知道我可以通过为Hive表使用正确的定界符来解决我的问题,因此它将很好地读取我提供给它的文件。
但是,我搜索了几个小时,仍然找不到可以用作字段分隔符的字符的任何文档?!
能否请您帮我找到我可以用作字段分隔符的哪种字符?以及用于指定它的格式/编码?
在有关融合的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, ...)]
但是,“字符”代表什么?
谢谢!
答案 0 :(得分:0)
[由字符终止的字段[由字符终止的字符]] 在此字符中,任何字符。最常用的是逗号(,),如CSV文件(逗号分隔的文件)
但是我不明白,如果您要从MySQL压缩数据,为什么还要关心Field Separator?
要么以 ORC格式创建表,然后将数据压缩到其中。或者,您也可以在导入数据的同时创建表。
mysql_connection="jdbc:mysql://server/db_name"
sqoop import \
--connect $mysql_connection \
--username=mysql_username \
--password=mysql_password \
--table batch_control_execution \
--hcatalog-database temp \
--hcatalog-table mysql_batch_control \
-m 1
将以下选项添加到创建表格
--create-hcatalog-table
然后将以下选项添加到指定格式。
--hcatalog-storage-stanza \
'stored as orc tblproperties ("orc.compress"="SNAPPY")'