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中得到了什么-让我来测试一下。