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

Hadoop 从CSV文件加载到配置单元新行字符,hadoop,hive,hdfs,hive-serde,Hadoop,Hive,Hdfs,Hive Serde,我们有一个文件,其类型如下: 1- Sam, Joshua , "52 DD dr, Lake Hiawatha" , New Jersey, 07034 2- Ruchi,kumari,SNN Raj serenity,Bengaluru, 560068 第1行在外部表中被拆分为2行,第1行中的其余列为null,第2行包含其余数据 需要帮助了解在单个列中加载以克服此问题的最佳方式。在web上浏览了几个解决方案,但不清楚 尝试了以下选项: 1) 使用正则表达式Serde ROW FOR

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

1- Sam, Joshua , "52 DD dr,
   Lake Hiawatha" , New Jersey, 07034 
2- Ruchi,kumari,SNN Raj serenity,Bengaluru, 560068
第1行在外部表中被拆分为2行,第1行中的其余列为null,第2行包含其余数据

需要帮助了解在单个列中加载以克服此问题的最佳方式。在web上浏览了几个解决方案,但不清楚

尝试了以下选项:

1) 使用正则表达式Serde

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

2) 来自github的CSVInputFormat


但无法使用它。

我尝试了以下选项,它对我有效

1) 正则表达式测试器-对于这个新行场景,正则表达式非常复杂,并且不起作用

2) 使用由提供的CVS解析器,并与他就如何使用它进行了交谈。尝试了多个选项,但不起作用


3) 简单的快速修复方法是使用shell或Perl命令尝试使用遗留方法替换文件中的新行,并且工作顺利。这似乎是一个更可行、更简单的选择。

将您的数据加载到正则表达式测试仪中,看看您在@cricket_007中得到了什么-让我来测试一下。