首页 > 解决方案 > 通过 Pandas 数据框使用不同于 utf-8 或 ISO-8859-1 的编码将外部表加载到 Big Query

问题描述

我正在将外部表从 Drive 上传到 Big Query。它是 CSV,Windows-1254格式可能是:

$ chardetect file.csv
file.csv: Windows-1254 with confidence 0.4127619770171521

正如我在 BQ 文档中阅读的那样 -外部数据配置CSV 选项:“支持的值是UTF-8ISO-8859-1

我的 python 代码将外部 CSV(从 Drive)加载到 BQ 中:

        external_config = bigquery.ExternalConfig("CSV")
        external_config.source_uris = [csv_url]
        external_config.options.skip_leading_rows = 1
        external_config.options.encoding = 'UTF-8'
        table_id = "temp_table"
        job_config = bigquery.QueryJobConfig(
            table_definitions={table_id: external_config})
        sql = f'SELECT * FROM `{table_id}`;'
        df = self.bq_client.query(sql, job_config=job_config).to_dataframe(
            create_bqstorage_client=False)

column: value在数据框中的一个看起来像这样: 'Opis_transakcji': 'Op³ata za wyp³atê'值不正确(编码错误)。

我应该如何获得具有正确编码(Windows-1254ISO-8859-9)的 df,或者在加载 df 以将其转换为正确编码后我应该做什么?

标签: pythonpandasencodinggoogle-bigquery

解决方案


推荐阅读