【发布时间】:2020-08-08 19:31:28
【问题描述】:
当我将数值数据(int64 或 float64)从 Pandas 数据框上传到 “Numeric” Google BigQuery 数据类型时出现以下错误:
pyarrow.lib.ArrowInvalid:得到长度为 8 的字节串(预期为 16)
我试图从 Pandas 数据框中更改“tt”字段的数据类型,但没有结果:
df_data_f['tt'] = df_data_f['tt'].astype('float64')
和
df_data_f['tt'] = df_data_f['tt'].astype('int64')
使用架构:
job_config.schema = [
...
bigquery.SchemaField('tt', 'NUMERIC')
...]
读到google-cloud-python issues report我得到了:
NUMERIC = pyarrow.decimal128(38, 9)
因此 “Numeric” Google BigQuery 数据类型使用的字节数比“float64”或“int64”多,这就是 pyarrow 无法匹配数据类型的原因。
我有:
Python 3.6.4
熊猫 1.0.3
pyarrow 0.17.0
google-cloud-bigquery 1.24.0
【问题讨论】:
标签: python pandas google-bigquery pyarrow