mule 4 读取 csv 文件跳过第一行

mule 4 reading csv file skips first line

在 Mule 4 中,我正在读取一个大型 csv 文件进行转换,需要将内容写入数据库 table。 csv 文件没有 headers。当我 运行 默认情况下集成时,第一行被跳过,就好像默认值被预先确定为 header.

        <sftp:listener doc:name="On New or Updated File" doc:id="f36f06d1-9dd1-4ea6-80fc-016a1b0fb2ac" config-ref="SFTP_Config" directory="${inbounddirectory}" recursive="false">
            <scheduling-strategy >
                <fixed-frequency frequency="120000" startDelay="1" />
            </scheduling-strategy>
            <sftp:matcher filenamePattern="xyz*.csv" />
        </sftp:listener>
        <logger level="INFO" doc:name="Logger" doc:id="e36120be-559b-4c32-b241-74752b340f45" message="FILENAME #[attributes.fileName]"/>
        <ee:transform doc:name="Transform Message" doc:id="2b6cbad1-6484-4eed-9b26-cf01354c5690" >
            <ee:message >
                <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
payload map ((payload , indexOfPayload) -> {
data1:payload[0],
data2:payload[1],
data3:payload[2],
data4:payload[3],
data5:payload[4],
data6:payload[5]
})]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" doc:name="Logger" doc:id="239df117-9eb5-43b3-b913-469217b759dd" message="PAYLOAD #[payload]"/>

我查看了资源下的 application-types.xml,看起来 header 设置为 false,如下所示

<types:property name="headerLineNumber" value="0"/>
<types:property name="header" value="false"/>
<types:property name="isQuotedString" value="false"/>

如有任何建议,我们将不胜感激。谢谢

在 sFTP 侦听器属性中,转到 MIME 类型选项卡,select 从下拉列表中选择“application/csv”并添加值为“false”的“header”参数:

不要看 application-types.xml。该文件是自动生成的,不应由人类读取。

您需要做的是确保在该负载的源组件中为 CSV 文件设置正确的 reader properties。在此流程中,这是 <sftp:listener> 来源。您将需要添加一个 outputMimeType 属性 将 header 输入 属性 设置为 false,因为默认值为 true。

<sftp:listener ... outputMimeType="application/csv; header=false">