2017-06-27 8 views
3

私は、ビッグクエリを使用してデータをクエリするためにpythonデータフローを使用しているように見えます。Pythonでbigqueryリーダー経由で行を読み込み中にAssertErrorを発生するGoogle Cloud Dataflow

bqクエリがゼロの行を返すときに、アサーションエラーが発生しました。&アサーションエラーが以下に示されています。私はこれがバグか、おそらく、pyデータフローのbqリーダーからゼロ行を処理するための推奨される方法があるのだろうかと思いますか?

データフロースクリプト:

from apache_beam.io import WriteToText 
from apache_beam.typehints import Any, Dict 

pipeline_options = PipelineOptions(pipeline_args) 
pipeline_options.view_as(SetupOptions).save_main_session = True 
p = beam.Pipeline(options=pipeline_options) 
BIGQUERY_ROW_TYPE = Dict[str, Any] 

# construct a bigquery SQL 
query_sql = Query().build_sql() 
lines = p \ 
     | 'read from bigquery' >> beam.io.Read(beam.io.BigQuerySource(query=query_sql, validate=True)).with_output_types(BIGQUERY_ROW_TYPE) \ 
     | 'write to test' >> WriteToText(known_args.output) 

result = p.run() 

クエリはゼロ行を返すときに私が表示されるエラー:

(98b5a6e4c0cd002e): Traceback (most recent call last): 
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 581, in do_work 
work_executor.execute() 
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/executor.py", line 166, in execute 
op.start() 
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/native_operations.py", line 48, in start 
for value in reader: 
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/nativefileio.py", line 186, in __iter__ 
for eof, record, delta_offset in self.read_records(): 
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/nativeavroio.py", line 102, in read_records 
assert block.num_records() > 0 
AssertionError 

`2017-06-27 (13:55:58) Workflow failed. Causes: (7390b72dc5ceedb6): S04:read from bigquery+write to test/Write/WriteImpl/Wr... 
(bb74ab934e658b06): Workflow failed. Causes: (7390b72dc5ceedb6): S04:read 
    from bigquery+write to test/Write/WriteImpl/WriteBundles/Do+write to 
    test/Write/WriteImpl/Pair+write to 
    test/Write/WriteImpl/WindowInto(WindowIntoFn)+write to 
    test/Write/WriteImpl/GroupByKey/Reify+write to 
    test/Write/WriteImpl/GroupByKey/Write failed.` 
+0

実際のクエリはありますか? – Pablo

+0

これはPython Dataflowワーカーのバグだと思います。 Avro仕様ではブロックに要素数がゼロでないことを要求していませんが、作業者はこの要件を誤って強制しています。私たちは修正に取り組んでいます。 – jkff

+0

@jkffこれに関するニュースはありますか? – Goranek

答えて

1

これはバグであり、(@jkffで)修正されましたが。この修正は、次のDataflowリリースで利用可能になります。これは約3〜5週間後に開始されます。

関連する問題