我在项目中的大查询中有数据集:
项目:project-x
表:table01
数据集:dataset01

我想从Apache Beam连接到它并读取例如一栏column01的值...

这就是我所拥有的:

import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
import os

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="Z:\DEV\CREDENTIALS\cred.json"

QUERY="""
    SELECT column01 from project-x:table01.dataset01
    """
options = {'project': 'project-x',
'runner': 'DirectRunner',
'region': 'EU'
}
pipeline_options = beam.pipeline.PipelineOptions(flags=[], **options)
pipeline=beam.Pipeline(options=pipeline_options)
BQ_source = beam.io.BigQuerySource(query = QUERY)
BQ_data = pipeline | beam.io.Read(BQ_source)


因此执行后我什么也没得到。。。我认为这是一些基本问题,但我才刚开始,很想看到一些结果。谢谢你的帮助。

最佳答案

有1个错误,我有1个建议
错误:起始格式为project:dataset.Table为旧版SQL。

建议:最好使用标准SQL,因为它能够使用所有新的bigquery功能! From Format是`project.dataset.table`
需要反引号。并在波束中设置legacy = off选项。

关于python - Apache Beam +大查询表读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57536934/

10-10 14:48