数据流pub / sub上的apply方法问题

时间:2018-04-05 21:47:41

标签: google-cloud-dataflow apache-beam google-cloud-pubsub

我是dataflow的新手,我正在尝试使用pubsubIO.writeStrings()的apply方法向pub / sub写一些消息(" projects / market-place-sql / topics / emisiones")它说: [enter image description here]

1 个答案:

答案 0 :(得分:1)

错误只是类型不匹配。 apply()类的Pipeline方法接受PTransform<? super PBegin,OutputT>类型的第二个参数。

PubSubIO.writeStrings().to()会返回PTransform<PCollection<T>,PDone>类型。因此,类型不匹配。

根据错误的屏幕截图,p似乎是Pipeline个对象。您需要首先将输入转换应用于Pipeline对象,该对象将返回PCollection。然后拨打apply()上的PCollection

示例:

p.apply("read from Pub/Sub", PubsubIO.readMessages().fromSubscription("subscription/path"))
 .apply("write to Pub/Sub", PubsubIO.writeStrings().to("topic/path"));

p.run();

参考文献:Pipeline.apply()PCollection.apply()