Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Greenplum外部表中换行符的处理_Java_Hadoop_Mapreduce_Greenplum - Fatal编程技术网

Java Greenplum外部表中换行符的处理

Java Greenplum外部表中换行符的处理,java,hadoop,mapreduce,greenplum,Java,Hadoop,Mapreduce,Greenplum,我正在创建Greenplum外部表,并用hdfs中存在的map reduce输出文件中的数据填充它。我能够将外部表连接到HDFS,并访问这些目录中的所有文件。所有文件都有逗号分隔格式的值 例如,我有两个文件Employee和Student,以逗号作为分隔符,如下所示: 雇员: id, name, company, status 1, XYZ, Greenplumb, Online 2, ABC, Big Data, Available 学生: name, courses, descriptio

我正在创建Greenplum外部表,并用hdfs中存在的map reduce输出文件中的数据填充它。我能够将外部表连接到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文件创建一个外部表时,它工作正常。因此,对于员工文件中的每一行,都会在外部表中创建一行。(分隔符为逗号)

但当我尝试为学生文件创建外部表时,它给出了错误。因为描述列中有换行符馈送的值。所以,每当外部表遇到新行馈送时,它都会将其视为记录的结尾,并开始将每个新行馈送后的值视为新记录

我已经尝试过的事情:

  • 将上述描述值转换为双引号,即将其视为完整字符串。但它没有成功
  • 从map reduce自身的数据中删除新行字符提要,但这会使我的数据无法读取。所以这不是一个选择

  • 有人能建议我如何处理这个问题吗。提前谢谢。

    也许你可以用复制的经典方式试试?如果它真的是3列表,那么所有列都是文本,这是实现这一点的最快方法,因为数据在表u中,所以您可以随意使用它。谢谢,但这不是一个选项。这是我在这里创建的一个虚拟示例,用来解释我所面临的问题。我有超过3个专栏和许多这样的文件。请提出其他建议。听起来是简单Python脚本或类似脚本的理想用途。使用
    csv
    导入,使用
    psycopg2
    编写@CraigRinger:你能分享你所说的python代码吗。@user1188611我手头没有任何不是更大更复杂工具一部分的固定代码。从和开始