我有一个TextFile,其中的数据以每行某种格式解析。
它是众多选择之一,并且只有34504行,它很小。大小是274KB。它们每个都发生相同的问题。
我使用了文本文件输入步骤,并将$ {line.seperator}用作分隔符(实际上在变量列表中找不到它,但在换行符的其他答案中找到了它)。 “获取字段”使我得到了Field_00,而“预览”向我显示了我想要的每一行中的所有数据。
现在,如果我要执行转换,它将陷入该步骤,并且永远不会完成。我将“写入日志文件”步骤放在该步骤之后,但从未达到该步骤,甚至单步执行也无法完成。即使将文件从“ filename.ges”更改为“ .txt”或“ .csv”也不会更改结果。
如果停止转换,它将进入无限停止状态,我需要重新启动PDI。
我还增加了spoon.bat中的Java MaxPermSize,因为我第一次得到了空指针异常:
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=8000m"
PDI版本8.3.0.0-371
有人对我如何解决这个问题有想法吗?
您正在使用line分隔符的值配置field分隔符。它可能正在尝试构造一个包含34504行字符的字符串。
如果要分别将行读入单个字段,请使用固定宽度文件类型(配置中的顶层项目,并定义1个长度为99999999999999999的字段。