我的项目运行的是Python2.7(是的,我知道...)Google Dataflow上的Apache Beam 2.19。我们连接到BigQuery的方式与Apache光束教程中指定的方式相同:
p | 'Get data from BigQuery' >> beam.io.Read(beam.io.BigQuerySource(
query=get_query(limit),
use_standard_sql=True)))然而,此管道的读取步骤非常慢-很可能是由于读取.avro文件所致。不过,看起来fastavro似乎并没有真正被使用。AFAIK,当在Python <3.7上运行时,您需要显式设置use_fastavro标志。在这种设置下,这可能吗?或者我需要先手动导出到GCS?
发布于 2020-03-20 02:14:16
您运行的是哪个版本的beam?在beam版本2.6+中,您可以启用use_fastavro,如下所示:
Dataflow Python SDK Avro Source/Sync
如果您使用的是python 3+,那么对于较新的beam SDK,https://github.com/apache/beam/blob/4743e131edadad42555e605be803e26cb37b7ce6/sdks/python/apache_beam/io/avroio.py#L81缺省值为true,但是您仍然可以手动启用它
在之前的python版本中,我没有看到任何关于不设置此设置的警告,所以您可能想试一试,看看这是否有效。
https://stackoverflow.com/questions/60758468
复制相似问题