問題タブ [google-cloud-dataflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-datastore - DatastoreIO を使用した Google Dataflow の問題
Dataflow (DatastoreIO) から 300k レコードを含む Datastore テーブルを読み込もうとしていますが、Datastore API から次のエラーが発生します。
400 Bad Request 複合フィルターには少なくとも 1 つのサブフィルターが必要です
コード:
エラー (終了前に 4 回発生):
これにより、他の質問が発生します。
1 - この場合、フィルターを定義する必要がありますか?
2 - Dataflow がジョブを分割するために使用する基準は何ですか?
3 - データストアから大きなテーブルを簡単にダンプする方法はありますか?
ありがとう。
google-cloud-dataflow - ファクトリ メソッド AvroCoder.of からインスタンスを構築できませんでしたか?
AvroCoder.class を使用してデータ構造をシリアル化しています。私のコードは次のようになります:
パイプラインを実行しようとすると、以下の例外が発生します。
この例外を修正するにはどうすればよいですか? テストでパイプラインを実行しようとしています。テストの作成と実行に TestPipeline を使用しています。
java - BigQuery、TableRow: Java API を使用して繰り返しレコードにアクセスする
Java API と新しいサービス Dataflow を介して BigQuery データにアクセスしています。TableRow クラスには次のようなメソッドがあると予想していました。
- TableCell インスタンスのリストを返します (繰り返しフィールドの場合)
- TableRow インスタンスを返す (ネストされたフィールドの場合)
- TableRow インスタンスのリストを返します (ネストされたフィールドが繰り返される場合)
しかし、get メソッドを使用して TableRow インスタンスのフィールドにアクセスするサンプル コードしか見つけられませんでした。これは、出力がオブジェクト クラスのインスタンスであるため便利ではありません。
現時点で私が目にする唯一の解決策は、get メソッドから取得した文字列を解析し、自分で TableRow オブジェクトを構築することですが、誰かが共有するより良い解決策を持っているかどうか疑問に思っていましたか?
どうもありがとう。
google-cloud-dataflow - データフローの出力でヘッダー行を追加するにはどうすればよいですか?
データフローを使用して出力 CSV ファイルを作成しています。ヘッダー行を書き込んで、すべての出力をそれに追加したいと考えています。どうすればそれを行うことができますか?
私のフローは大まかに次のようになります。
ありがとう!
key-value - からすべての値を出力する方法キーでグループ化されたペア、Google Dataflow を使用
私は比較的簡単に見えることをしようとしていますが、いくつかの困難に直面しています。
たくさんのテキストがあり、各行は値です。テキストの各行を分析し、適切なキーを作成してから、KV ペアを発行します。次に、GroupByKey
変換を使用します。最後に、キーごとにグループ化されたすべてのテキストを出力したいと思います (キーごとに 1 つのテキスト ファイルを取得できればボーナス ポイントですが、それが可能かどうかはわかりません)。
パイプラインは次のapply
ようになります。
残念ながら、FormatOutputFn()
思い通りに動作させることができません。
各値を反復してIterable<String>
出力しても、キーと値のグループ化は保証されません (これについて間違っている場合は修正してください。そうすれば問題は解決します)。次にStringBuilder()
、小さなデータセットで動作しますが、当然のことながらjava.lang.OutOfMemoryError: Java heap space
、より大きなデータのログにエラーを生成する を使用してみました。変換も試しましたが、K,V ペアの値はではなく、通常Flatten.FlattenIterables
の であるため、どちらも機能しません。PCollection
Iterable
共通キーによる分析に関するこの質問を見てきましたが、答えからすると、自分の状況で何をすべきかが正確にはわかりません。を使用する必要があると思いますが、使用Combine.PerKey
方法が正確にはわかりません。また、これを行うには事前に作成された方法が必要であると想定していますが、ドキュメントでその事前に作成された方法を見つけることができません。私は正しい場所を見ていないだけだと確信しています。
そして、前述のように、テキスト ファイルの名前がキーで、値がすべてファイル内にあるテキスト ファイル出力を取得する方法があれば、それは素晴らしいことです。しかし、Dataflow でこれができるとは思いません (まだ?)。
読んでくれてありがとう。
java - バージョン 0.3.150227 google-cloud-dataflow-java-sdk-all に依存する gradle プロジェクトのコンパイル エラー
Google クラウド データ フローを使用する Java アプリに取り組んでおり、gradle を使用してコンパイルしようとするとエラーが発生します。
build.gradle の依存関係セクションは次のとおりです。
}
私が得ているエラーは次のとおりです。
com.google.cloud.dataflow:google-cloud-dataflow-java-proto-library-all:0.3.150206 を解決できませんでした。必須: :telstra-targetingserver-cdf-cptmappings:0.0.1 > com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:0.3.150227
POM を解析できませんでしたhttps://repo1.maven.org/maven2/com/google/cloud/dataflow/google-cloud-dataflow-java-proto-library-all/0.3.150206/google-cloud-dataflow-java- proto-library-all-0.3.150206.pom com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-parent:LATEST が見つかりませんでした。次の場所で検索: file:/Users/pablocaif/.m2/repository/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk-親-LATEST.pom ファイル:/Users/pablocaif/.m2/repository/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk-parent -LATEST.jar https://repo1.maven.org/maven2/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk-parent-LATEST.pom https ://repo1.maven.org/maven2/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk-parent-LATEST.jar
現時点での内容は次のとおりです。
google-bigquery - Dataflow Java API を介してクライアント側に返される一貫性のない BigQuery データ型
与えられた BigQuery テーブル:
そして、次のクライアント側コード:
以下を生成します。
INTEGER に対して文字列が返されるのはなぜですか?
FLOAT に対して Double が返されるのはなぜですか?
google-bigquery - Dynamic partitioning in google cloud dataflow?
I'm using dataflow to process files stored in GCS and write to Bigquery tables. Below are my requirements:
- input files contain events records, each record pertains to one eventType;
- need to partition records by eventType;
- for each eventType output/write records to a corresponding Bigquery table, one table per eventType.
- events in each batch input files vary;
I'm thinking of applying transforms such as "groupByKey" and "partition", however seems that I have to know number of (and type of) events at the development time which is needed to determine the partitions.
Do you guys have a good idea to do the partitioning dramatically? meaning partitions can be determined at run time?