如何解决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 举报,一经查实,本站将立刻删除。