ユーザー名と年齢の構造を持つ次のコードがあります。タスクは、年齢を追加し、年齢に基づいてフィルターすることです。 ageを増やす方法を見つけましたが、フィルタリングの部分で行き詰まっています。
リーリー
以下のような関数を作成しようとしましたが、これはユーザーオブジェクトの代わりにブール値を返します。単純な何かが欠けていることはわかっていますが、それを理解できません。リーリー
Pythonでは以下のような関数を書くことができます。
package main import ( "context" "flag" "fmt" "github.com/apache/beam/sdks/v2/go/pkg/beam" "github.com/apache/beam/sdks/v2/go/pkg/beam/log" "github.com/apache/beam/sdks/v2/go/pkg/beam/x/beamx" ) func init() { beam.registerfunction(incrementage) } type user struct { name string age int } func printrow(ctx context.context, list user) { fmt.println(list) } func incrementage(list user) user { list.age++ return list } func main() { flag.parse() beam.init() ctx := context.background() p := beam.newpipeline() s := p.root() var userlist = []user{ {"bob", 40}, {"adam", 50}, {"john", 35}, {"ben", 8}, } initial := beam.createlist(s, userlist) pc := beam.pardo(s, incrementage, initial) pc1 := beam.pardo(s, func(row user, emit func(user)) { emit(row) }, pc) beam.pardo0(s, printrow, pc1) if err := beamx.run(ctx, p); err != nil { log.exitf(ctx, "failed to execute job: %v", err) } }
リーリー
現在のコードに書かれているように、 は list.age > 40 を返します。
list.age > 40 最初に true (ブール値) と評価され、そのブール値が返されます。
以上がGo の Apache Beam ParDo フィルターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。