Мне нужно прочитать CSV-файл в DataFlow, который представляет таблицу, выполнить преобразование GroupBy, чтобы получить количество элементов в указанном столбце c, а затем записать это число в таблицу BigQuery вместе с исходным file.
Пока что я получил первый шаг - чтение файла из моего хранилища и я вызвал преобразование, но я не знаю, как получить счетчик для одного столбца, так как CSV имеет 16.
public class StarterPipeline {
private static final Logger LOG = LoggerFactory.getLogger(StarterPipeline.class);
public static void main(String[] args) {
Pipeline p = Pipeline.create(PipelineOptionsFactory.fromArgs(args).withValidation().create());
PCollection<String> lines = p.apply("ReadLines", TextIO.read().from("gs://bucket/data.csv"));
PCollection<String> grouped_lines = lines.apply(GroupByKey())
PCollection<java.lang.Long> count = grouped_lines.apply(Count.globally())
p.run();
}
}