26、基于 Cloud Dataflow 的航班数据处理与特征计算

Cloud Dataflow航班数据处理与特征计算

基于 Cloud Dataflow 的航班数据处理与特征计算

1. 数据写入与管道搭建

通常不建议写入未分片的数据,因为这会迫使所有写入工作由单个工作器执行。除非输出数据足够小,单个工作器就能处理,否则应写入分片的输出文件。在最终的管道中,我们会将机场每小时的平均出发延误作为单个文件输出(这类数据只有几千条),而将航班信息输出分片到多个文件中(因为航班数据有几百万条)。

以下是一个完整的 Apache Beam 管道示例,它从指定输入文本文件读取数据,过滤出包含 “MIA” 的航班信息,并将结果写入一个未分片的文件:

p 
    .apply("ReadLines", TextIO.Read.from(options.getInput())) 
    .apply("FilterMIA", ParDo.of(new DoFn<String, String>() {
        @ProcessElement
        public void processElement(ProcessContext c) {     
            String input = c.element();
            if (input.contains("MIA")) {
                c.output(input);
            }
        }
    })) 
    .apply("WriteFlights", 
        TextIO.Write.to(options.getOutput() + "flights2") 
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值