代码之家  ›  专栏  ›  技术社区  ›  Nagesh Singh Chauhan

如何在BeamSql中将BeamRecord转换为字符串

  •  0
  • Nagesh Singh Chauhan  · 技术社区  · 6 年前

    我正在将beamRecord转换为字符串。下面是代码片段:

    PCollection<BeamRecord> output_A = apps.apply(BeamSql.query("select Outlet from PCOLLECTION"));
    output_A.apply(TextIO.write().to("gs://google_bucket/output/sbc.txt"));
    

    output\u A是BeamRecord格式,需要转换为字符串,以便将其写入输出文件。

    以下是output\u A.apply上的错误:

    应用的方法(PTransform,Output>)在类型中,PCollection不适用于参数(TextIO.Write)

    所以我的问题是如何将BeamRecord转换为字符串格式。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Andrew Nguonly    6 年前

    您需要对转换 BeamRecord 到a String 在应用之前 TextIO.Write 使改变有很多方法可以做到这一点。您可以转换 光束记录 到a 一串 以任何你想要的方式。

    易于理解的 toString()

    public void processElement(ProcessContext c) {
    
        // c.element() returns a BeamRecord
        c.output(c.element().toString());
    }
    

    或从 光束记录

    public void processElement(ProcessContext c) {
    
        // c.element() returns a BeamRecord
        c.output(c.element().getString("fieldName"));
    }
    

    参考号: BeamRecord