I have to merge two CSV files of 50GB size using .net. Please help me a quick process that took less than 5 mintues
What I have tried:
static void Main(string[] args)
{
string sourceFolder = @"D:\SingleBlockDataDump_June.csv";
string destinationFile = @"\D:\SingleBlockDataDump_July.csv";
string logFilePath = @"D:\log.txt";
// string[] filePaths = Directory.GetFiles(sourceFolder, "CSV_File_Number?.csv");
StreamWriter fileDest = new StreamWriter(destinationFile, true);
//int i=1;
//for (i = 0; i < filePaths.Length; i++)
{
//string file = filePaths[i];
string[] lines = File.ReadAllLines(sourceFolder); //File.ReadAllLines(file);
//if (i > 0)
//{
//lines = lines.Skip(1).ToArray(); // Skip header row for all but first file
lines = lines.ToArray();
//}
TimeSpan startTime = DateTime.Now.TimeOfDay;
string logText = "Started to merge: " + startTime +Environment.NewLine;
foreach (string line in lines)
{
fileDest.WriteLine(line);
}
TimeSpan endTime=DateTime.Now.TimeOfDay;
logText += "Finished merging: " + endTime;
//TimeSpan duration = DateTime.Parse(endTime).Subtract(DateTime.Parse(startTime));
logText += "Elapsed Time:";
using (StreamWriter writetext = new StreamWriter(logFilePath))
{
writetext.WriteLine(logText);
}
Console.ReadLine();
}
fileDest.Close();
}