Python Pyarrow.lib.Schema与Pyarrow.parquet.Schema

Python Pyarrow.lib.Schema与Pyarrow.parquet.Schema,python,pyspark,parquet,pyarrow,Python,Pyspark,Parquet,Pyarrow,当我试图跨多个分区的拼花地板文件加载时,由于缺少用空值填充模式的数据,一些模式的推断无效。我认为在pyarrow.parquet.ParquetDataset中指定模式可以解决这个问题,但我不知道如何构造正确的pyarrow.parquet.schema类型的模式。一些示例代码: import pyarrow as pa import pa.parquet as pq test_schema = pa.schema([pa.field('field1', pa.string()), pa

当我试图跨多个分区的拼花地板文件加载时,由于缺少用空值填充模式的数据,一些模式的推断无效。我认为在pyarrow.parquet.ParquetDataset中指定模式可以解决这个问题,但我不知道如何构造正确的pyarrow.parquet.schema类型的模式。一些示例代码:

import pyarrow as pa
import pa.parquet as pq    
test_schema = pa.schema([pa.field('field1', pa.string()), pa.field('field2', pa.float64())])
paths = ['test_root/partition1/file1.parquet', 'test_root/partition2/file2.parquet']
dataset = pq.ParquetDataset(paths, schema=schema)
错误是:

AttributeError: 'pyarrow.lib.Schema' object has no attribute 'to_arrow_schema'

但是我在文档()中找不到任何关于如何构造pyarrow.parquet.Schema模式的文档,我只制作了一个pyarrow.lib.Schema,它给出了上述错误。

目前还没有一个用Python构造拼花模式的API。但是,您可以使用从特定文件读取的文件(请参见
pq.ParquetFile(…).schema

您能否在ARROW JIRA项目上打开一个问题,请求该功能在Python中构建拼花模式


谢谢,我会的。但我尝试了一种解决方法,使用to_arrow_schema函数创建自己的pyarrow模式包装器类。现在我有了一个模式,我用它来创建一个pyarrow表,在这个表上我调用write_to_dataset。我在对保存的文件调用pq.ParquetDataset时使用了相同的模式,但我得到了一个ValueError:test_file.parquet中的模式不同。我能做些什么来解决这个问题吗?我在两侧指定相同的模式。