Я хочу пропустить строку заголовка из файла 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
Пропустить заголовок при чтении файла CSV в Apache Beam ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Apache Beam: java.lang.illegalstateException при чтении из таблицы MSSQL
Anonymous » » в форуме JAVA - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как пропустить первый элемент каждой строки в файле CSV без изменения файла CSV [закрыто]
Anonymous » » в форуме Python - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-