如何使用 .NET Core 将镶木地板文件转换为 CSV?
How to convert parquet file to CSV using .NET Core?
我有一个 parquet 文件,我正在尝试将其转换为 CSV 文件,似乎大多数人都推荐使用 Spark,但是我需要使用 C# 来完成此任务,特别是我需要使用 .NET Core 3.0.
这很棘手,因为 parquet 是柱状数据,这使得转换为 CSV 很烦人...
我试过将它加载到数据表中,但我不喜欢这种解决方案,因为我需要将整个文件保存在内存中,而且我以某种方式丢失了某些记录。
我正在使用 parquet.net,但我愿意接受任何其他适用于 .net 的镶木地板库 core/standard
提前致谢。
我还没有尝试过,但我想知道您是否可以利用/滥用 Microsoft Spark SQL 库来为您谋利。
有
DataFrameReader.Parquet(字符串[])
还有:
DataFrameWriter.Csv(字符串)方法
我想知道您是否可以使用 DataFrame 作为内存中介。
目前这只是一个猜测,因为你的问题引起了我的兴趣,也许我睡一会就试一试。 :-)
使用 Cinchoo ETL - 一个开源库,您可以轻松地将 Parquet 文件转换为 CSV。
安装 Nuget 包
install-package ChoETL.Parquet
示例代码
using ChoETL;
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());
更多信息,请访问codeproject文章。
我有一个 parquet 文件,我正在尝试将其转换为 CSV 文件,似乎大多数人都推荐使用 Spark,但是我需要使用 C# 来完成此任务,特别是我需要使用 .NET Core 3.0.
这很棘手,因为 parquet 是柱状数据,这使得转换为 CSV 很烦人...
我试过将它加载到数据表中,但我不喜欢这种解决方案,因为我需要将整个文件保存在内存中,而且我以某种方式丢失了某些记录。
我正在使用 parquet.net,但我愿意接受任何其他适用于 .net 的镶木地板库 core/standard
提前致谢。
我还没有尝试过,但我想知道您是否可以利用/滥用 Microsoft Spark SQL 库来为您谋利。
有
DataFrameReader.Parquet(字符串[])
还有:
DataFrameWriter.Csv(字符串)方法
我想知道您是否可以使用 DataFrame 作为内存中介。
目前这只是一个猜测,因为你的问题引起了我的兴趣,也许我睡一会就试一试。 :-)
使用 Cinchoo ETL - 一个开源库,您可以轻松地将 Parquet 文件转换为 CSV。
安装 Nuget 包
install-package ChoETL.Parquet
示例代码
using ChoETL;
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());
更多信息,请访问codeproject文章。