【问题标题】:Bigquery Python API - Write dataframe order by columnBigquery Python API - 按列写入数据帧顺序
【发布时间】:2021-09-12 12:26:35
【问题描述】:

我正在尝试使用 Python API 将 pandas.Dataframe 写入 Bigquery,按列对记录进行排序:

from google.cloud import bigquery

client = bigquery.Client(project=project_id)

df = pd.DataFrame(...)
df.sort_values('date', inplace=True)

job_config = bigquery.LoadJobConfig(
    schema=[
        bigquery.SchemaField("date", "DATE"),
        bigquery.SchemaField("col1", "INTEGER"),
        bigquery.SchemaField("col2", "INTEGER"),
        bigquery.SchemaField("col3", "STRING")
    ],
    write_disposition="WRITE_TRUNCATE"
)

job_update = client.load_table_from_dataframe(
    df, output_table, job_config=job_config
)

进程正确地创建了具有正确值的表,但行未按date 排序。 job_config中是否有定义顺序的参数/方法?

【问题讨论】:

  • 与大多数关系数据库一样,BigQuery 中的数据永远不应被视为已排序。如果需要对其进行排序,则必须在用于检索数据的查询中指定。

标签: python google-cloud-platform google-bigquery google-api-python-client


【解决方案1】:

正如问题的 cmets 中所述,没有参数/方法来定义 job_config 中任何特定列的顺序。

与大多数关系型数据库类似,BigQuery 中的数据永远不应被视为已排序。如果您需要对它进行排序,则必须在查询中使用ORDER BY 子句指定用于检索数据的内容。

【讨论】:

    猜你喜欢
    • 2021-09-12
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多