我将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格式。
答案 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