当前位置: 首页 > 知识库问答 >
问题:

使用load_table_from_dataframe与数值数据类型的Google BigQuery架构冲突(pyarrow错误)

严修谨
2023-03-14

当我将Pandas dataframe中的数字数据(int64或float64)上传到“numeric”Google BigQuery数据类型时,出现了以下错误:

pyarrow.lib.arrowinvalid:获得长度为8的字节字符串(应为16)

我试图从Pandas dataframe中更改'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问题报告,我得到:

NUMERIC=pyarrow.Decimal128(38,9)

因此,“Numeric”Google BigQuery数据类型比“float64”或“int64”使用更多的字节,这就是为什么pyarrow不能匹配数据类型。

google-cloud-bigquery 1.24.0

共有1个答案

盖嘉珍
2023-03-14

我不确定这是否是最好的解决方案,但我通过更改数据类型解决了这个问题:

import decimal
...
df_data_f['tt'] = df_data_f['tt'].astype(str).map(decimal.Decimal)
 类似资料:
  • 使用Web API和swashbuckle生成swagger文档,我在两个不同的名称空间中定义了两个同名的不同类。当我在浏览器中打开swagger页面时,它显示 冲突的schemaId:为类型A和B检测到重复的schemaID。请参阅配置设置-“UseFullTypeNameInSchemaIds”以了解潜在的解决方法 完整消息: 500:{“Message”:“发生错误。”,“Exception

  • 我正在尝试使用Google Cloud Dataflow(Python SDK)将Google PubSub消息写入Google Cloud Storage。这些消息以json格式进入PubSub,我必须定义一个模式才能将它们写入Google Cloud Storage中的拼花格式。 根据其他用户的建议,我开始着手这项任务,特别是查看这个和这个来源。< br >第一个不是我想要做的,因为它将更改应

  • 问题内容: 我在两个不同的数据库模式中定义了相同的表类型。当我尝试将一个类型的SP作为参数从一个模式调用到另一个模式时,出现以下错误: “操作符类型冲突myCustomType与myCustomType不兼容” 我有以下代码: 类型定义 存储过程定义 执行 我该如何解决这个问题? 问题答案: 您遇到了用户定义表类型的局限性之一。 请参阅此Microsoft Connect项目 ,以“按设计”关闭。

  • 问题内容: 我们有一个以异常结尾的包,例如 直到eclipse 3.3为止,我们的代码库都没有问题,但是当我们转到eclipse 3.4时,它开始给出与此软件包相关的错误: 当我将包名称重构为abcexceptions时,没有任何问题。这是由于eclipse 3.4中的错误还是有一些设置可以纠正此行为? 问题答案: 我在eclipse中更改了编译选项之一,问题消失了。在工作空间属性下:Java编译

  • 当将Dagger2和Android数据绑定添加到我的项目中时,我会遇到以下构建时间错误。这似乎是一个已知的问题(参见[1]或[2]),因为我得到了完全相同的错误。不幸的是,我不能解决他们(像其他人一样)。是否有人有一个完整的工作设置与当前版本的匕首2和数据绑定,并可以帮助?

  • 问题内容: 我的问题是每个插入中都有错误 操作数类型冲突:int与日期不兼容 如何解决这个问题? 也在这里 … 消息547,级别16,状态0,第1行INSERT语句与FOREIGN KEY约束“ FK__crew__emp_num__0F975522”发生冲突。数据库“ melisa”的表“ dbo.employee”的列“ emp_num”中发生了冲突。这张桌子上有错误 问题答案: 此表达式是一

  • 我正在使用我的laravel应用程序中的可修改包来记录对模型的编辑。 此外,我还实现了一个observer类来侦听特定的模型事件(更新、删除、创建等)并执行操作(例如清除缓存等)。使用方法在模型中实例化此观察者,如下所示: 我发现,当我在模型中定义方法时,可修改特性停止工作,并且不会记录更改—大概是因为它也使用了一个方法,该方法正被模型中的方法覆盖。 我将如何解决这个问题,以允许监听模型事件以及利

  • 在实现第三方API(mollie)时,他们似乎将支持分页的参数之一命名为from,这与内置的python相冲突。 有没有办法让我正确使用这个?我没有正确传递参数吗?注意:它们被写成。 它唯一支持的参数是:和。 给予: