Запись нулевых значений в файл паркета с помощью Parquet.Net создает нечитаемый файл паркета.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Запись нулевых значений в файл паркета с помощью Parquet.Net создает нечитаемый файл паркета.

Сообщение Anonymous »

Я использую Parquet.Net (4.23.5) для записи файла паркета. Я обнаружил, что когда я хочу записать нулевое значение в столбце данных, сгенерированный файл паркета становится нечитаемым.
Итак, что я делаю неправильно
Это это простой код для его проверки:

Код: Выделить всё

var fields = new List
{
new DataField("id"),
new DataField("city")
};

var schema = new ParquetSchema(fields);

Parquet.Data.DataColumn[] columns = new Parquet.Data.DataColumn[2];
for (int i = 0; i < 2; i++)
{
Type t = fields[i].ClrType;

//var allData = getData(dataTable, i);
columns[i] = t switch
{
Type when typeof(string) == t => new Parquet.Data.DataColumn(fields[i], new string?[] { "London", null}),/*"Derby" */
Type when typeof(int) == t => new Parquet.Data.DataColumn(fields[i], new int[] { 1, 2 }),

_ => throw new NotImplementedException(),
};
}

using (Stream fileStream = System.IO.File.OpenWrite("c:\\test.parquet"))
{
ParquetOptions parquetOptions = new ParquetOptions { TreatByteArrayAsString = true, UseDictionaryEncoding = true, UseDeltaBinaryPackedEncoding = false };

using (ParquetWriter parquetWriter = await ParquetWriter.CreateAsync(schema, fileStream, parquetOptions))
{
parquetWriter.CompressionMethod = CompressionMethod.Gzip;
parquetWriter.CompressionLevel = System.IO.Compression.CompressionLevel.Optimal;

// create a new row group in the file
using (ParquetRowGroupWriter groupWriter = parquetWriter.CreateRowGroup())
{
foreach (var item in columns)
{
await groupWriter.WriteColumnAsync(item);
}
}
}
}
Он создает файл паркета, но когда я пытаюсь прочитать его с помощью ParQuetViewer, я не могу прочитать файл
Изображение


Подробнее здесь: https://stackoverflow.com/questions/783 ... le-parquet
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»