Я работаю над требованием, которое считывает данные из BigQuery и записывает результаты в корзину GCS в формате csv. я могу читать из 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, date, time, order_id, items, amount, mode, restaurant, status, ratings, feedback')
)
Буду признателен за любую оказанную помощь. Спасибо!!!
WriteToText()
в Python Beam SDK, чтобы позволить заголовки заказ. Это то, что вы ищете? - person Nick_Kh   schedule 08.03.2021