我在 Excel 文件中有一个列(不是最后一列),其中包含跨越几行的数据。
列的某些单元格为空白,有些单元格具有单行条目。
当保存为 .CSV 文件或制表符分隔 .txt 与 Excel 时,所有多行数据和少数单行条目都会在双引号中生成,所有空白字段都不会在引号中。一些单行条目不在引号内。
是否可以将具有相同结构的数据存储在 hive 表中?如果是,如何做到这一点?
我知道我需要转义双引号内的所有 LF,并仅将最后一个 LF 作为实际的 EOL 处理。但是当遇到 '\n' 时,Hive 会将数据写入新行。
Excel中数据的格式如下:
|------+------+--------+------------------+-------+------|
|row1: | col1 | col2 | col3(multi-line) | col4 | col5 |
|------+------+--------+------------------+-------+------|
| | | | line 1 of 3 | | |
|row2: | abc | defsa | line 2 of 3 | bcde | hft |
| | | | line 3 of 3 | | |
|------+------+--------+------------------+-------+------|
|row3: | abc2 | defsa2 | (blank) | bcde2 | hft2 |
|------+------+--------+------------------+-------+------|
|row4: | abc3 | defsa3 | single-line1 | bcde3 | hft3 |
|------+------+--------+------------------+-------+------|
|row5: | abc4 | defsa4 | single-line2 | bcde4 | hft4 |
|------+------+--------+------------------+-------+------|
当保存为 CVS 时,它输出到以下内容:
row1--col1,col2,col3(多行),col4,col5
row2--abc,defsa,第 1 行,共 3",
row3--第 2 行,共 3 行,
row4--第 3 行,共 3 行,
row5--",bcde,hft
row6--abc2,defsa2,bcde2,hft2
第 7 行--abc 3,def a3,单行 1,bcde3,hft3
row8--abc4,defsa4,单行2",
row9--",bcde4,hft4
5 行 excel 到 9 行 csv。
如果可能的话,请注意将此 .csv 文件中的输入存储到 Hive 表中,而无需更改结构和维护多行列。