Пропустить заголовок при чтении файла CSV в Apache BeamJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Пропустить заголовок при чтении файла CSV в Apache Beam

Сообщение Anonymous »

Я хочу пропустить строку заголовка из файла CSV. На данный момент я удаляю заголовок вручную перед загрузкой его в хранилище Google.

Ниже мой код:

PCollection financeobj =p.apply(TextIO.read().from("gs://storage_path/Financials.csv"));
PCollection pojos5 = financeobj.apply(ParDo.of(new DoFn() { // converting String into classtype

private static final long serialVersionUID = 1L;
@ProcessElement
public void processElement(ProcessContext c) {
String[] strArr = c.element().split(",");
ClassFinance fin = new ClassFinance();
fin.setBeneficiaryFinance(strArr[0]);
fin.setCatlibCode(strArr[1]);
fin.set_rNR_(Double.valueOf(strArr[2]));
fin.set_rNCS_(Double.valueOf(strArr[3]));
fin.set_rCtb_(Double.valueOf(strArr[4]));
fin.set_rAC_(Double.valueOf(strArr[5]));
c.output(fin);
}
}));


Я проверил существующий вопрос в stackoverflow, но не считаю его многообещающим: пропуск строк заголовка – возможно ли это с Cloud DataFlow?

Любая помощь?

Изменить: Я попробовал что-то вроде ниже, и это сработало:

PCollection financeobj = p.apply(TextIO.read().from("gs://google-bucket/final_input/Financials123.csv"));

PCollection pojos5 = financeobj.apply(ParDo.of(new DoFn() { // converting String into classtype

private static final long serialVersionUID = 1L;
@ProcessElement
public void processElement(ProcessContext c) {
String[] strArr2 = c.element().split(",");
String header = Arrays.toString(strArr2);
ClassFinance fin = new ClassFinance();

if(header.contains("Beneficiary"))
System.out.println("Header");
else {
fin.setBeneficiaryFinance(strArr2[0].trim());
fin.setCatlibCode(strArr2[1].trim());
fin.setrNR(Double.valueOf(strArr2[2].trim().replace("", "0")));
fin.setrNCS(Double.valueOf(strArr2[3].trim().replace("", "0")));
fin.setrCtb(Double.valueOf(strArr2[4].trim().replace("", "0")));
fin.setrAC(Double.valueOf(strArr2[5].trim().replace("", "0")));
c.output(fin);
}
}
}));


Подробнее здесь: https://stackoverflow.com/questions/508 ... pache-beam
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Пропустить заголовок при чтении файла CSV в Apache Beam
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Apache Beam: java.lang.illegalstateException при чтении из таблицы MSSQL
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как пропустить первую строку при чтении CSV с помощьюstreamreader
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как настроить расположение контента в Dataflow Apache Beam при записи CSV в облачное хранилище Google
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как пропустить первый элемент каждой строки в файле CSV без изменения файла CSV [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»