Паркетный файл неправильно записываетсяC#

Место общения программистов C#
Anonymous
Паркетный файл неправильно записывается

Сообщение Anonymous »

Я недавно обновил Parquet.net до версии 4.6.0, что потребовало изменения многих вызовов методов на их асинхронные версии. < /p>
Этот код создает файл без каких -либо ошибок: < /p>

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

        string file = @"c:\temp\test.parquet";
var dataFields = new DataField[2];
dataFields[0] = new DataField("dtUTC", DataType.Int64);
dataFields[1] = new DataField("val", DataType.Double);
var schema = new ParquetSchema(dataFields);
var dtUTC = new long[3];
var val = new double[3];

using (Stream fileStream = System.IO.File.OpenWrite(file))
{
using (var parquetWriterTask = ParquetWriter.CreateAsync(schema, fileStream))
{
parquetWriterTask.Wait();
var parquetWriter = parquetWriterTask.Result;
using (ParquetRowGroupWriter groupWriter = parquetWriter.CreateRowGroup())
{
var col0 = Array.CreateInstance(typeof(long), dtUTC.Length);
for(int i=0;i< dtUTC.Length;i++) col0.SetValue(dtUTC[i], i);
var writeT = groupWriter.WriteColumnAsync(new Parquet.Data.DataColumn(dataFields[0], col0));
writeT.Wait();
var col1 = Array.CreateInstance(typeof(double), val.Length);
for (int i = 0; i < val.Length; i++) col1.SetValue(val[i], i);
var writeT2 = groupWriter.WriteColumnAsync(new Parquet.Data.DataColumn(dataFields[1], col1));
writeT2.Wait();
}
}
}
< /code>
Однако, когда я пытаюсь прочитать этот файл, либо используя 3 -е приложение, либо мой собственный код, показанный ниже, я получаю ошибки в соответствии с ними < /p>

назначение слишком коротко < /p>
< /blockquote>
или < /p>


или  < /p>

in onfect offect>

in onfect offect>

< /blockquote>
(в зависимости от того, какое приложение я использую для чтения файла) < /p>
Код, который я использую для чтения: < /p>
        using (Stream file = System.IO.File.OpenRead(fileName))
{
using (var readerTask = ParquetReader.CreateAsync(file))
{
readerTask.Wait();
var reader = readerTask.Result;
if (reader.RowGroupCount != 1) throw new Exception("reader.RowGroupCount = " + reader.RowGroupCount);
var dataFields = reader.Schema.GetDataFields();
using (var gr = reader.OpenRowGroupReader(0))
{
Parquet.Data.DataColumn[] columns = parquet.getCols(gr, dataFields);// dataFields.Select(gr.ReadColumn).ToArray();
output($"\tGroup 0: columns.Length={columns.Length}");
}
}
}
Что я делаю не так при написании этого паркетного файла?

Подробнее здесь: https://stackoverflow.com/questions/759 ... -correctly

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