【发布时间】:2021-03-06 01:33:49
【问题描述】:
我有点卡在这里。我需要阅读一个非常大的 CSV 文件(42.000 行,180 列)。 CSV 有一个标题。
每次 “文本文件输入” 步骤尝试加载此文件时,由于堆空间不足和 GC 以 98% 的 CPU 工作,一段时间后 Pentaho 完成处理。
当我阅读以下文件时(小得多):
我每行都得到这个结果:
如何使用 “文本文件输入” 步骤读取较大的 CSV 文件,而不占用太多内存空间?每次都可以小批量读取吗?
我知道“CSV输入”这一步可以读取成批的行,但是结果不一样:
使用此步骤是否可以得到类似“文本文件输入”的结果?
更多数据:
- 我在 JVM 中使用具有 Xms2048m y Xmx6144m 值的 Pentaho 8.1。我不能走得更远。
- CSV 列和名称是动态的。
谢谢!!!
PD 1:CSV file (partial) PD 2:Transformation
【问题讨论】:
-
由于您的配置是固定的“JVM 中的 Xms2048m y Xmx6144m 值”,因此现在您有 2 个选项。一个是查看NIO 缓冲区大小,另一个是并行运行。无论如何。还。您在转换的其他步骤中可能存在一些问题,从而导致此问题。你能用你的 CSV 文件分享你的转换吗?
-
@Runa 感谢您的回复。我添加了转换和简化的 CSV 文件。转换有一个 JS 步骤,在 CSV 文件中标记一些行,并且也使用大量内存。
-
感谢您的文件。我个人处理包含大约 2000 万行的 csv 文件。好的。我会看看你的转变并回复你。
-
谢谢你,@Runa!非常感谢您的帮助。
标签: memory memory-leaks pentaho