我正在尝试创建和部署Dataflow管道,以将从Cloud Pubsub主题收集的数据流式传输到Cloud Datastore . 但是,我一直遇到如下错误:无法找到符号符号:变量DatastoreIO位置:类DataUpload
当我按照以下文档导入相关包--DatastoreV1以及以下示例代码的语法时,我没有't understand what I' m做错了:https://cloud.google.com/dataflow/java-sdk/JavaDoc/com/google/cloud/dataflow/sdk/io/datastore/DatastoreV1
任何帮助都会大大减轻我这几天一直在做的头撞事 . 提前谢谢!
import com.google.cloud.dataflow.sdk.Pipeline;
import com.google.cloud.dataflow.sdk.io.PubsubIO;
import com.google.cloud.dataflow.sdk.options.DataflowPipelineOptions;
import com.google.cloud.dataflow.sdk.options.PipelineOptionsFactory;
import com.google.cloud.dataflow.sdk.runners.DataflowPipelineRunner;
import com.google.cloud.dataflow.sdk.transforms.DoFn;
import com.google.cloud.dataflow.sdk.transforms.ParDo;
import com.google.cloud.dataflow.sdk.values.PCollection;
import com.google.cloud.dataflow.sdk.io.datastore.DatastoreV1;
public class DataUpload{
public static void main(String[] args) {
DataflowPipelineOptions options = PipelineOptionsFactory.create()
.as(DataflowPipelineOptions.class);
options.setRunner(DataflowPipelineRunner.class);
options.setProject(projectName);
//options.setStagingLocation("gs://my-staging-bucket/staging");
options.setStreaming(true);
Pipeline p = Pipeline.create(options);
p.apply(PubsubIO.Read.topic("projects/{project_name}/topics/data"))
.apply(DatastoreIO.v1().write().withProjectId(projectId));
p.run();
}
}
Update :我已经包含了下面的一行,并得到了一堆新的错误 .
import com.google.cloud.dataflow.sdk.io.datastore.DatastoreIO;
DataUpload.java:[30,14]找不到合适的方法(com.google.cloud.dataflow.sdk.io.datastore.DatastoreV1.Write)方法com.google.cloud.dataflow.sdk.values.PCollection.apply (com.google.cloud.dataflow.sdk.transforms.PTransform,OutputT>)不适用(无法推断类型变量OutputT(参数不匹配; com.google.cloud.dataflow.sdk.io.datastore.DatastoreV1) .Write无法转换为com.google.cloud.dataflow.sdk.transforms.PTransform,OutputT>))方法com.google.cloud.dataflow.sdk.values.PCollection.apply(java.lang.String,com.google .cloud.dataflow.sdk.transforms.PTransform,OutputT>)不适用(无法推断类型变量OutputT(实际和形式参数列表的长度不同))
1 回答
请添加以下import语句,我认为您缺少该语句 .
你可以找到一些使用这个的例子和文档here
如果您使用的是dataflow 2.0,请查看这些java docs,其中包含一些不同的包和方法名称 .