【问题标题】:How to convert parquet file to CSV using .NET Core?如何使用 .NET Core 将镶木地板文件转换为 CSV?
【发布时间】:2020-05-29 21:09:14
【问题描述】:

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

这很棘手,因为 parquet 是柱状数据,这使得转换为 CSV 很烦人......

我尝试将其加载到数据表中,但我不喜欢该解决方案,因为我需要将整个文件保存在内存中,而且我会以某种方式丢失某些记录。

我正在使用 parquet.net,但我对任何其他适用于 .net 核心/标准的 parquet 库都持开放态度

提前谢谢你。

【问题讨论】:

标签: c# csv .net-core parquet


【解决方案1】:

使用Cinchoo ETL - 一个开源库,您可以轻松地将 Parquet 文件转换为 CSV。

安装 Nuget 包

安装包 ChoETL.Parquet

示例代码

使用 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文章。

【讨论】:

    【解决方案2】:

    我还没有尝试过,但我想知道您是否可以利用/滥用 Microsoft Spark SQL 库来为您谋取利益。

    DataFrameReader.Parquet(String[])

    https://docs.microsoft.com/en-us/dotnet/api/microsoft.spark.sql.dataframereader.parquet?view=spark-dotnet

    还有:

    DataFrameWriter.Csv(String) 方法

    https://docs.microsoft.com/en-us/dotnet/api/microsoft.spark.sql.dataframewriter.csv?view=spark-dotnet#Microsoft_Spark_Sql_DataFrameWriter_Csv_System_String_

    我想知道您是否可以使用 DataFrame 作为内存中介。

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

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2018-11-09
      • 2017-01-18
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      相关资源
      最近更新 更多