簡體   English   中英

如何使用apache camel dsl刪除csv的標題

[英]How to remove header of csv using apache camel dsl

通過僅刪除 csv 的標題行(即正文的第一行),讀取 csv 文件內容並生成文本文件作為輸出。 我可以通過放置數據來生成文本文件,但是如何從 csv 中刪除標題/第一行無法做到。

使用駱駝 2.32.2

由於我是駱駝的新手,我嘗試了一些方法,例如 removefirstline/remove header first is not there in this version. 我希望它以相同的 dsl 語言完成,而不是通過編寫一些處理器等。下面是讀取 csv 並將數據放入文本文件的基本代碼,但如何刪除 csv 的標題並放置其余數據。

    <route id="convertFileContents">
    <from id="_from1" uri="file:{{INPUT_FILEPATH}}?include=.*.csv&amp;moveFailed={{ERROR_FILEPATH}}&amp;move={{PROCESSED_FILEPATH}}&amp;noop=false" />
    <log id="_log1" message="CONTENTS OF THE CSV BEFORE TRANFORMATION-->${body}" />
    <convertBodyTo id="_convertBodyTo1" type="java.lang.String" />
<setHeader headerName="fName" id="_setHeader1">
                    <simple>${file:onlyname.noext}</simple>
                </setHeader>
        <setBody id="_setBody1">
            <simple>${body}</simple>
        </setBody>
    <log id="_log2" message="CONTENTS OF THE CSV AFTER TRANFORMATION-->${body}" />
    <to id="_to2" uri="file:{{GENERATED_FILEPATH}}?fileName=${headers.fName}.txt" />
    </route>

文件輸入:csv

Accident Description,Reported By,Date Of Loss,Reported Date

car hit,john,4/20/2012,11-Apr-19

Crane fell,john,9/1/2011,11-Apr-19

文件預期輸出:文本

car hit,john,4/20/2012,11-Apr-19

Crane fell,john,9/1/2011,11-Apr-19

您可以通過使用駱駝綁定和屬性skipFirstLine 來實現它。

定義一個POJO類:import org.apache.camel.dataformat.bindy.annotation.CsvRecord; 導入 org.apache.camel.dataformat.bindy.annotation.DataField;

@CsvRecord(separator = ",", skipFirstLine = true)
public class test
{

  @DataField(pos = 1)
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  @DataField(pos = 2)
  private String age;

  public String getAge() {
    return age;
  }

在你的路線中,你可以解組如下

  from("file:/test?include=.*.csv&noop=true").routeId("test")
  .unmarshal(new BindyCsvDataFormat(test.class))
  .marshal(new BindyCsvDataFormat(test.class))
  .to("file:/test/?fileName=output.txt&fileExist=Append");

暫無
暫無

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

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