/// <summary> /// Graba el archivo /// </summary> protected override void SaveFile(string targetFileName) { LibCsvFiles.Controllers.CsvDataReaderWriter writer = new LibCsvFiles.Controllers.CsvDataReaderWriter(); // Escribe el archivo using (ParquetDataReader reader = new ParquetDataReader(FileName)) { writer.Save(reader, targetFileName); } }
/// <summary> /// Importa el archivo /// </summary> private void Import(BlockLogModel block, ProviderModel provider, SentenceImportParquet sentence, string fileName) { long records = 0; // Copia del origen al destino using (ParquetDataReader reader = new ParquetDataReader(fileName, sentence.RecordsPerBlock)) { // Asigna el manejador de eventos reader.Progress += (sender, args) => block.Progress("Importing", args.Records, 0); // Copia los datos del archivo sobre la tabla records = provider.BulkCopy(reader, sentence.Table, sentence.Mappings, sentence.RecordsPerBlock, sentence.Timeout); } // Log block.Info($"Imported {records:#,##0} records"); }
private void ReadDataTest(Action <IDataReader> test, IEnumerable <ColumnConverter> columnConverters = null) { using (var stream = ParquetFiles.GetParquetFileWithThreeRowGroups()) { using (var parquetReader = new ParquetReader(stream)) { using (IDataReader reader = new ParquetDataReader(parquetReader, columnConverters)) { while (reader.Read()) { test(reader); } } } } }
/// <summary> /// Graba el archivo /// </summary> protected override void SaveFile(LibLogger.Models.Log.BlockLogModel block, string fileName) { LibCsvFiles.Controllers.CsvDataReaderWriter writer = new LibCsvFiles.Controllers.CsvDataReaderWriter(); // Escribe el archivo using (ParquetDataReader reader = new ParquetDataReader(FileName)) { // Log writer.Progress += (sender, args) => block.Progress(System.IO.Path.GetFileName(fileName), args.Records, args.Records + 1); // Escribe el archivo writer.Save(reader, fileName); } // Log block.Progress(System.IO.Path.GetFileName(fileName), 0, 0); block.Info($"Fin de la grabación del archivo '{fileName}'"); SolutionViewModel.MainController.Logger.Flush(); }