簡體   English   中英

Java中的文本文件拆分庫

[英]Text file split libraries in Java

我的程序接收大型CSV文件,並將其轉換為XML文件。 為了獲得更好的性能,我想將此文件分成較小的段(例如500行)。 有什么可用的Java庫來拆分文本文件?

我不明白您將CSV文件拆分成較小的文件會得到什么? 使用Java,您可以隨時讀取和處理文件,而不必一次全部讀取...

您打算如何處理這些數據?

如果只是通過記錄處理進行記錄,那么面向事件(SAX或StaX)解析將是解決之道。 對於逐記錄處理,可能適用現有的“管道”工具包。

您可以預先過程與像分路器功能,您的文件這一個這Splitter.java

文件拆分后,您打算如何分配工作?

我在一個名為GridGain的框架上做了類似的事情-它是一個網格計算框架,它使您可以在計算機網格上執行任務。

然后,您可以使用諸如JBoss Cache之類的緩存提供程序將文件分發到多個節點,指定起始和結束行號以及過程。 在下面的GridGain示例中對此進行了概述: http : //www.gridgainsystems.com/wiki/display/GG15UG/Affinity+MapReduce+with+JBoss+Cache

或者,您可以查看諸如Hadoop和Hadoop File System之類的東西,以在不同節點之間移動文件。

通過將文件加載到高速緩存中,然后分配文件的某些“塊”以供單獨的線程處理,可以在本地計算機上實現相同的概念。 網格計算的東西實際上僅用於解決非常大的問題,或者為您的解決方案透明地提供一定程度的可伸縮性。 您可能需要注意IO瓶頸和鎖,但是在拆分文件后將“作業”調度到其中的簡單線程池可能會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM