登录
首页 >  Golang >  Go问答

DataflowRunner 无法运行

来源:stackoverflow

时间:2024-02-17 23:54:16 436浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《DataflowRunner 无法运行》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

使用 apache beam go sdk 执行处理时,“dataflow”和“dataflowrunner”不能与“--runner”选项集一起使用。

我检查了官方的 apache beam 参考和 go 手册,但我不明白原因。 您能告诉我具体的解决方案吗?

在命令行执行的命令
go run test.go --runner=dataflowrunner \
          --project=[my-project] \
          --region=[my-region] \
          --temp_location=gs://[my-gs-bucket] \
          --staging_location=gs://[my-gs-bucket] \
          --worker_harness_container_image=apache/beam_go_sdk:lates
实际代码
package main

    import (
        "context"
        "flag"
        "reflect"

        "github.com/bramp/morebeam/csvio"
        "github.com/apache/beam/sdks/go/pkg/beam"
        "github.com/apache/beam/sdks/go/pkg/beam/log"
        "github.com/apache/beam/sdks/go/pkg/beam/x/beamx"
        "github.com/apache/beam/sdks/go/pkg/beam/io/bigqueryio"
        "github.com/apache/beam/sdks/go/pkg/beam/options/gcpopts"
    )

    type csvdata struct {
        id   string
        name string
        age  string
    }

    var (
        bq = "[my-project]:[my-data-set].[my-file]"
    )

    func main() {

        flag.parse()

        beam.init()

        ctx := context.background()
            
        p := beam.newpipeline()
        s := p.root()
        
     log.infof(ctx, "started pipeline on scope: %s", s)
        
     parse := csvio.read(s, "gs://[my-gcs-bucket]", reflect.typeof(csvdata{}))

        if bq != "" {
            project := gcpopts.getproject(ctx)
            bigqueryio.write(s, project, bq, parse)
        }
        
        beamx.run(ctx, p)
    }
执行结果
2021/06/17 01:29:15 Started pipeline on scope: root

正确答案


我相信它应该是 --runner=dataflow ..小写

理论要掌握,实操不能落!以上关于《DataflowRunner 无法运行》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>