parquet.net ParquetOptions.UseDeltaBinaryPackedEncoding 如何禁用

问题描述 投票:0回答:1

我正在使用 Parquet.Net 库从 C# 代码生成 parquet 文件。 4.15.0 版本工作正常,但切换到最新的 4.16.4 后,生成的文件无法使用 ParquetViewer 读取。它抛出错误“DELTA_BINARY_PACKED”编码不受支持。我在网上发现可以使用 ParquetOptions 禁用此功能。但是,我无法找到此选项作为 ParquetWriter 方法的一部分。

这是代码片段

private async Task ParquetWriteRowGroup(ParquetSchema schema, List<dynamic> data)
{
    Console.WriteLine($"output file =>  {OutputFilePath}");
    using (Stream fs = File.Open(OutputFilePath, FileMode.CreateNew))
    {
        using (ParquetWriter writer = await ParquetWriter.CreateAsync(schema, fs))
        {
            writer.CompressionMethod = CompressionMethod.Snappy;


            using (ParquetRowGroupWriter groupWriter = writer.CreateRowGroup())
            {
                for (int i = 0; i < data.Count; i++)
                {
                    await groupWriter.WriteColumnAsync(new DataColumn(schema.DataFields[i], data[i]));
                }
            }
        }
    }
}
parquet parquet.net
1个回答
0
投票

也被这个问题困扰了 试试这个:

ParquetOptions options = new ParquetOptions();
options.UseDeltaBinaryPackedEncoding = false;
ParquetSerializerOptions serializerOptions = new ParquetSerializerOptions();
serializerOptions.ParquetOptions = options;
await ParquetSerializer.SerializeAsync(stuff, destination, 
serializerOptions);
© www.soinside.com 2019 - 2024. All rights reserved.