处理Greenplum外部表中的换行符

时间:2013-05-02 16:21:08

标签: java hadoop mapreduce greenplum

我正在创建Greenplum外部表并使用我的地图中的数据填充hdfs中存在的减少输出文件。我能够将外部表连接到HDFS并访问这些目录中的所有文件。所有文件都以逗号分隔格式显示。

例如,我有两个文件Employee和Student使用逗号作为分隔符:

员工:

id, name, company, status
1, XYZ, Greenplumb, Online
2, ABC, Big Data, Available

学生:

name, courses, description
ABC, Hadoop, This course is about hadoop. (newline character) . It will help 
             understand what hadoop is and how to play with big data using hadoop.

现在,当我为员工文件创建外部表时,它可以正常工作。因此,对于Employee文件中的每一行,都会创建外部表中的一行。 (分隔符是逗号)。

但是当我尝试为Student文件创建外部表时,它会出错。因为描述列具有包含NEWLINE字符的值。因此,每当外部表遇到新的换行符时,它都会将其视为记录的结尾,并在每个换行符后作为新记录开始处理值。

我已经尝试过的事情:

  1. 将上述描述值转换为双引号,将其视为完整的字符串。但它没有成功。
  2. 从地图中的数据中删除换行字符会减少自身,但这会使我的数据无法读取。所以不是一个选择。
  3. 任何人都可以建议我如何处理这个问题。提前谢谢。

0 个答案:

没有答案