如何在BeamSql中将BeamRecord转换为String

时间:2018-03-09 07:06:34

标签: apache-beam

我将beamRecord转换为String。以下是代码段:

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_A采用BeamRecord格式,需要转换为String,以便将其写入输出文件。

以下是output_A.apply上的错误:

  

类型PCollection中的方法apply(PTransform,OutputT&gt;)不适用于参数(TextIO.Write)

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

1 个答案:

答案 0 :(得分:2)

在应用#!/bin/bash -eo pipefail bundle check || bundle install --jobs=4 --retry=3 --path vendor/bundle [!] There was an error parsing `Gemfile`: [!] There was an error while loading `fastlane-plugin-lizard.gemspec`: cannot load such file -- fastlane/plugin/lizard/version Does it try to require a relative path? That's been removed in Ruby 1.9. Bundler cannot continue. 转换之前,您需要将转换应用于将BeamRecord转换为String的管道。有很多方法可以做到这一点。您可以以任何方式将TextIO.Write转换为BeamRecord

简单String

toString()

或者从public void processElement(ProcessContext c) { // c.element() returns a BeamRecord c.output(c.element().toString()); } 获取特定字段值。

BeamRecord

参考:BeamRecord