从csv文件加载到配置单元新行字符

wvmv3b1j  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(480)

我们有一个文件,其类型如下:

1- Sam, Joshua , "52 DD dr,
   Lake Hiawatha" , New Jersey, 07034 
2- Ruchi,kumari,SNN Raj serenity,Bengaluru, 560068

在外部表中,第1行被拆分为2行,其余的列在第1行中为空,第2行包含其余的数据。
需要什么是最好的方式加载在一个单一的列来克服这个问题的帮助。在网络上浏览了一些解决方案,但并不清楚。
尝试了以下选项:
1) 使用正则表达式serde

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' 
WITH SERDEPROPERTIES (
"input.regex" = '"*([^"]*)"*,"*([^"]*)"*'
)

但没有成功
2) 来自github的csvinputformathttps://github.com/mvallebr/csvinputformat
但不能使用它。

eqqqjvef

eqqqjvef1#

我试过下面的方法,对我很有效,
1) regex tester-对于这个新行场景,regex非常复杂,而且不起作用。
2) 使用由提供的cvs解析器https://github.com/mvallebr/csvinputformat 还和他聊了聊怎么用。尝试了多种选择,但不起作用。
3) 简单快捷的解决方法是使用shell或perl命令尝试使用遗留方法替换文件中的新行,并且工作顺利。似乎这是一个更加可行和容易的选择。

相关问题