Java Greenplum外部表中换行符的处理
我正在创建Greenplum外部表,并用hdfs中存在的map reduce输出文件中的数据填充它。我能够将外部表连接到HDFS,并访问这些目录中的所有文件。所有文件都有逗号分隔格式的值 例如,我有两个文件Employee和Student,以逗号作为分隔符,如下所示: 雇员: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
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文件创建一个外部表时,它工作正常。因此,对于员工文件中的每一行,都会在外部表中创建一行。(分隔符为逗号)
但当我尝试为学生文件创建外部表时,它给出了错误。因为描述列中有换行符馈送的值。所以,每当外部表遇到新行馈送时,它都会将其视为记录的结尾,并开始将每个新行馈送后的值视为新记录
我已经尝试过的事情:
有人能建议我如何处理这个问题吗。提前谢谢。也许你可以用复制的经典方式试试?如果它真的是3列表,那么所有列都是文本,这是实现这一点的最快方法,因为数据在表u中,所以您可以随意使用它。谢谢,但这不是一个选项。这是我在这里创建的一个虚拟示例,用来解释我所面临的问题。我有超过3个专栏和许多这样的文件。请提出其他建议。听起来是简单Python脚本或类似脚本的理想用途。使用
csv
导入,使用psycopg2
编写@CraigRinger:你能分享你所说的python代码吗。@user1188611我手头没有任何不是更大更复杂工具一部分的固定代码。从和开始