从数据流python作业写入bigquery中的分区表

2024-05-23 22:41:28 发布

您现在位置:Python中文网/ 问答频道 /正文

当我从dataflow写入bigquery中的分区表时,我得到了以下错误-有人能帮我吗?在

Invalid table ID \"test$20181126\". Table IDs must be alphanumeric (plus underscores) and must be at most 1024 characters long. Also, Table decorators cannot be used.

这是我用来写的python代码片段

import apache_beam as beam


class bqwriter(beam.PTransform):
    def __init__(self, table, schema):
        super(BQWriter, self).__init__()
        self.table = table
        self.schema = schema

    def expand(self, pcoll):
        pcoll | beam.io.Write(beam.io.BigQuerySink(
            self.table,
            schema=self.schema,
            create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED,
            write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE
        ))

我正在创建如下表

^{pr2}$

Tags: ioselfinitschemadeftablebebigquery
2条回答

我也有同样的问题。我的解决方案是:

  • 或者向数据中添加一个日期列,然后设置要对其进行分区的BQ表

  • 或者在BQ中设置默认分区。

这两个选项都意味着您只需插入test-123:测试。测试在

至于我们是否能做你想做的事,看来是的。Beam JIRA状态他们为Java修复了它,但是我找不到python的状态。在

相关问题 更多 >