Apache Beam ReadFromBigQuery - BQ 列被改组

问题描述

我正在处理从 BigQuery 读取数据并将结果以 csv 格式写入 GCS 存储桶的要求。我能够从 bigquery 读取并写入 GCS,但 bq 列正在重新排序。我希望列在 csv 中的顺序与它在 bigquery 表中的顺序相同。

谁能帮我解决这个问题?为什么列被洗牌?我怎样才能更正订单?

我写的代码

def yield_values(x):
    return x.values()


def csv_format(x):
    return ','.join(['"' + str(column) + '"' for column in x])


read_rows = (
        p
        | 'QueryTableStdsql' >> beam.io.ReadFromBigQuery(
            query='SELECT customer_id,date,timestamp,order_id,items,amount,mode,restaurant,status,ratings,Feedback FROM `unique-caldron-305709.food_orders_dataset.cleaned_orders` WHERE DATE(_PARTITIONTIME) > "2021-01-24"',use_standard_sql=True,gcs_location='gs://food-order/snapshot/')
        | 'ReadValues' >> beam.Map(yield_values)
        | 'CSVFormat' >> beam.Map(csv_format)
        | 'WritetoStorage' >> beam.io.WritetoText(outputs_prefix,file_name_suffix='.csv',header='customer_id,time,Feedback')
)

非常感谢任何帮助。谢谢!!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)