使用带回车的HIVE-Error在Hadoop中加载电子邮件数据

时间:2014-05-12 15:59:11

标签: hadoop hive

我正在尝试在hadoop中加载文本数据。以下是详细信息

文件:

  

" 2014年4月30日和2014年5月2日的综合比赛.eml"

     

日期:星期二,2014年4月29日18:09:20 +0530(IST)|

     

来自:Rahul Tandel / AHD / TCS      

致:pravita tolanavar |

     

抄送:upendra.bhandari@uno1.com |

     

主题:2014年4月30日和2014年5月2日的综合比赛|

     亲爱的Pravita,我在周三(2014年4月30日)和   星期五(2014年5月2日)我正在周末工作 - 周六(4月13日)   2014-2nd Shift)和周六(2014年4月19日轮班)。我有   告知Kamlesh同样如此。

     

谢谢&关注Rahul Tandel PS PAG PGA Mailto:rahul.tandel@uno1.com   网站:http://www.uno1.com

HIVE表架构:

" create table mail (mail_data STRUCT<DATE_M:STRING, FROM_m:STRING, TO_m:STRING,   CC_M:STRING, SUBJECT_m:STRING, DATA_M:STRING>) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' COLLECTION ITEMS TERMINATED BY '\174' LINES TERMINATED BY '\n';"

表是成功创建的。但是当我加载数据时,我看到的是19行而不是单行。 我试图找到原因,似乎蜂巢没有一种机制来检测换行并打破输入文件。

如果有人有更好的解决方案,请帮助

在这里输入代码

此致 众议员

1 个答案:

答案 0 :(得分:0)

我有完全相同的情况,我设法做的就是用regexp_replace函数替换新的行和表格:

regexp_replace(TEXT_HERE, '\\t|\\r|\\n', ' ')

如果有人有更好的解决方案,我将不胜感激!