我在项目的大型查询中有数据集: 项目:project-x 表:table01 数据集:dataset01
我想从Apache Beam连接到它,并读取一个column-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)
所以执行后我什么也没得到...。我认为这是一些基本问题,但我才刚刚开始,很想看到一些结果。感谢您的帮助。
答案 0 :(得分:1)
有1个错误,我有1个建议 错误:起始格式为project:dataset。表为旧版SQL。
建议:首选标准SQL,因为它能够使用所有新的bigquery功能! From Format是`project.dataset.table` 需要反引号。然后在Beam中设置legacy = off选项。