C# 如何使用.NETCore将拼花地板文件转换为CSV?

C# 如何使用.NETCore将拼花地板文件转换为CSV?,c#,csv,.net-core,parquet,C#,Csv,.net Core,Parquet,我有一个拼花文件,我正在尝试将其转换为CSV文件,似乎大多数人都建议使用Spark,但我需要使用C来完成此任务,特别是我需要使用.NET Core 3.0 这很棘手,因为拼花地板是柱状数据,这使得转换成CSV很烦人 我曾尝试将其加载到数据表中,但我不喜欢这种解决方案,因为我需要将整个文件存储在内存中,并且不知何故丢失了某些记录 我使用的是parquet.net,但我对在.NETCore/standard上工作的任何其他拼花库都是开放的 提前感谢您。我还没有尝试过,但我想知道您是否可以利用/滥用M

我有一个拼花文件,我正在尝试将其转换为CSV文件,似乎大多数人都建议使用Spark,但我需要使用C来完成此任务,特别是我需要使用.NET Core 3.0

这很棘手,因为拼花地板是柱状数据,这使得转换成CSV很烦人

我曾尝试将其加载到数据表中,但我不喜欢这种解决方案,因为我需要将整个文件存储在内存中,并且不知何故丢失了某些记录

我使用的是parquet.net,但我对在.NETCore/standard上工作的任何其他拼花库都是开放的


提前感谢您。

我还没有尝试过,但我想知道您是否可以利用/滥用Microsoft Spark SQL库为您带来好处

DataFrameReader.Parquet(字符串[])

而且:

DataFrameWriter.Csv(字符串)方法

我想知道您是否可以使用数据帧作为内存中介

现在这只是一个猜测,因为你的问题引起了我的兴趣,也许我会在睡觉后试一试。:-)

通过一个开源库,您可以轻松地将拼花文件转换为CSV

安装Nuget软件包

安装组件ChoETL.镶木地板

示例代码

使用ChoETL

有关更多信息,请访问codeproject文章

希望有帮助。

也有。但一般来说,我建议使用C#以外的其他方法进行预处理。
StringBuilder csv = new StringBuilder();
using (var r = new ChoParquetReader(@"*** Your Parquet file ***")
    .ParquetOptions(o => o.TreatByteArrayAsString = true)
    )
{
    using (var w = new ChoCSVWriter(csv)
        .WithFirstLineHeader()
        .UseNestedKeyFormat(false)
        )
        w.Write(r);
}

Console.WriteLine(csv.ToString());