问题描述
我正在处理从 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 (将#修改为@)