Мне нужно записать фрейм данных Polars в таблицу BigQuery. Таблица разделена по дате.
Когда мне нужно запустить сценарий обратного заполнения, я перебираю диапазон дат, получаю данные из какого-то источника (в данном случае API), конвертирую их в фрейм данных, немного манипулирую и записываю их в таблицу BQ.
Но вместо перезаписи раздела для этой даты он перезаписывает всю таблицу?
Как я могу перезаписать только раздел?
/>Мой код на данный момент:
import polars as pl
from google.cloud import bigquery
# create period_range from internal util_package
for date in period_range:
data = "get some API data here per date"
df = pl.read_csv(data).select(pl.col(pl.INT64))
client = bigquery.Client()
with io.BytesIO() as stream:
df.write_parquet(stream)
stream.seek(0)
job = client.load_table_from_file(
file_obj=stream,
destination="analytics.ads.vendor_name",
project="mycompany_ads",
location="EU",
job_config=bigquery.LoadJobConfig(
source_format=bigquery.SourceFormat.PARQUET,
time_partitioning=bigquery.TimePartitioning(
type_=bigquery.TimePartitioningType.DAY,
field="date", # name of column to use for partitioning
require_partition_filter=True,
),
clustering_fields=["domain", "type", "placement"],
autodetect=True,
schema=None,
write_disposition=bigquery.WriteDisposition.WRITE_TRUNCATE,
),
)
job.result() # Waits for the job to complete
print("ETL finished")
Подробнее здесь: https://stackoverflow.com/questions/786 ... f-the-tabl
Как записать фрейм данных в BigQuery и перезаписать раздел вместо таблицы? ⇐ Python
Программы на Python
1761997319
Anonymous
Мне нужно записать фрейм данных Polars в таблицу BigQuery. Таблица разделена по дате.
Когда мне нужно запустить сценарий обратного заполнения, я перебираю диапазон дат, получаю данные из какого-то источника (в данном случае API), конвертирую их в фрейм данных, немного манипулирую и записываю их в таблицу BQ.
Но вместо перезаписи раздела для этой даты он перезаписывает всю таблицу?
Как я могу перезаписать только раздел?
/>Мой код на данный момент:
import polars as pl
from google.cloud import bigquery
# create period_range from internal util_package
for date in period_range:
data = "get some API data here per date"
df = pl.read_csv(data).select(pl.col(pl.INT64))
client = bigquery.Client()
with io.BytesIO() as stream:
df.write_parquet(stream)
stream.seek(0)
job = client.load_table_from_file(
file_obj=stream,
destination="analytics.ads.vendor_name",
project="mycompany_ads",
location="EU",
job_config=bigquery.LoadJobConfig(
source_format=bigquery.SourceFormat.PARQUET,
time_partitioning=bigquery.TimePartitioning(
type_=bigquery.TimePartitioningType.DAY,
field="date", # name of column to use for partitioning
require_partition_filter=True,
),
clustering_fields=["domain", "type", "placement"],
autodetect=True,
schema=None,
write_disposition=bigquery.WriteDisposition.WRITE_TRUNCATE,
),
)
job.result() # Waits for the job to complete
print("ETL finished")
Подробнее здесь: [url]https://stackoverflow.com/questions/78642191/how-to-write-a-dataframe-to-bigquery-and-overwrite-partition-instead-of-the-tabl[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия