Talend - 处理大分隔文件

时间:2015-06-01 14:35:52

标签: csv talend

我对如何处理包含大量列(> 3000)的分隔文件有疑问。 我尝试使用标准分隔文件输入组件提取字段,但创建模式需要数小时,当我运行作业时,我收到错误,因为toString()方法超过65535字节限制。那时我可以运行这个工作,但所有的列都搞砸了,我不能再和他们一起工作了。

是否可以将.csv文件与talend分开?有没有其他可能的处理,可能与某种Java代码?如果您有任何其他问题,请不要犹豫。

干杯!

3 个答案:

答案 0 :(得分:1)

您可以在元数据中创建分隔文件的架构吗?我用3百万条记录测试了3k列,甚至没有用5分钟来加载所有列数据类型的列名。显然,你不能通过将每一行作为一个单元格来拆分该文件,它可能会超过talend中的字符串限制。但是你可以使用 BufferedReader 在Java中完成它。

答案 1 :(得分:0)

要处理大分隔文件,我们需要为大数据设计的东西,我认为使用此命令将文件加载到MongoDB集合是一个不错的选择,而不需要在导入文件之前创建3k列集合:

mongoimport --db users --collection contacts --type csv --headerline --file /opt/backups/contacts.csv

之后,您可以使用ETL工具轻松处理数据。

请参阅MongoImprort Ref

答案 2 :(得分:0)

也许你可以选择uniVocity。它可以处理处理数据的各种极端情况。

查看tutorial,看看是否符合您的需求。

这是一个使用CSV输入的简单项目:https://github.com/uniVocity/worldcities-import/

披露:我是这个图书馆的作者。它是开源和免费的(Apache V2.0许可证)。