【问题标题】:Bigquery parquet file treats list<string> as list<int32> when empty array is passed传递空数组时,Bigquery parquet 文件将 list<string> 视为 list<int32>
【发布时间】:2022-11-24 06:27:20
【问题描述】:

我有一个大型嵌套 TB 大小的 jsonl(s),我正在将其转换为镶木地板文件并写入已分区的谷歌云存储桶。

问题如下。嵌套字段之一是字符串列表 理想情况下,我期望该字段的模式是billing_code_modifier: list&lt;item: string&gt;,但在极少数情况下,有时所有记录的列表长度为 0,在这种情况下,pandas 会写入 billing_code_modifier: list&lt;item: null&gt;

这会导致一个问题,因为用于读取这些镶木地板文件的第三方工具 [bigquery] 由于不一致的模式而无法读取这些文件,期望列表未列出 [它默认空数组为 int32 ,怪谷歌而不是我]

如何解决这个问题。有没有办法在编写镶木地板文件时指定架构。 因为我正在处理一个桶,所以我不能写一个空的镶木地板,然后在 2 个单独的写操作中将数据添加到文件中,因为 GCP 不允许您修改文件只覆盖

【问题讨论】:

    标签: python google-bigquery parquet pyarrow


    【解决方案1】:

    对于 Pandas,您可以将 Arrow 模式指定为 kwarg,它应该提供正确的模式。详情请见Pyarrow apply schema when using pandas to_parquet()

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 2015-11-20
      • 1970-01-01
      • 2012-12-26
      • 2015-07-02
      • 2014-04-06
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      相关资源
      最近更新 更多