我有一组日期分区表employee_wages_<date>
,想要使用数据流读取一些列。有些东西(python示例)
beam.io.Read('ReadNameAndTotalSalary',
beam.io.BigQuerySource(query='SELECT user_name, sum(salary) as total_salary FROM `project_id.dataset_id.employee_salary_*` group by 1'))
查询在Google大查询上工作正常,但是当我运行管道时,我得到并且错误地说无效表名。也许我正在做一些非常愚蠢的事情或者是不可能在df中使用glob(*)?
答案 0 :(得分:1)
Dataflow(尚未)支持您在查询中使用的BigQuery Standard SQL。一种解决方法是使用#StandardSQL预先添加查询文本,这将指示BigQuery以下查询使用标准SQL,即
beam.io.Read('ReadNameAndTotalSalary',
beam.io.BigQuerySource(query='#StandardSQL\nSELECT user_name, sum(salary) as total_salary FROM `project_id.dataset_id.employee_salary_*` group by 1'))
(我认为\ n在Python中用作换行符,但我不是Python程序员)
更新:Dataflow SDK for Java 1.8.0(今天发布),使用StandardSql设置引入,但它不在python SDK中(尚未)。