在 Logic App 工作流中另存为 .PARQUET 文件

Save as .PARQUET file in Logic App workflow

如何将 运行 查询和列表结果 的输出文件保存为 .PARQUET 文件格式。

这是我当前的工作流程。

我的逻辑应用程序正在运行,但是每次我在 Apache Parquet Viewer 上查看时创建的文件 .parquet 都无效

谁能帮我解决这个问题。谢谢!

输出:

我看到您正在尝试将 .parquet 添加到您收到的 csv 文件中,但这不是将其转换为 parquet 文件的方式。

您可以尝试的解决方法之一是获取 csv 文件,然后添加可以转换为 parquet 文件的 Azure 函数,然后将 azure 函数添加到逻辑应用程序。

这是对我有用的功能:

BlobServiceClient blobServiceClient = new BlobServiceClient("<YOUR CONNECTION STRING>");
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("<YOUR CONTAINER NAME>");
BlobClient blobClient = containerClient.GetBlobClient("sample.csv");

//Download the blob
Stream file = File.OpenWrite(@"C:\Users\<USER NAME>\source\repos\ParquetConsoleApp\ParquetConsoleApp\bin\Debug\netcoreapp3.1\" + blobClient.Name);
await blobClient.DownloadToAsync(file);
Console.WriteLine("Download completed!");
file.Close();
            
//Read the downloaded blob
Stream file1 = new FileStream(blobClient.Name, FileMode.Open);
Console.WriteLine(file1.ReadToEnd());
file1.Close();

//Convert to parquet
ChoParquetRecordConfiguration csv = new ChoParquetRecordConfiguration();
using (var r = new ChoCSVReader(@"C:\Users\<USER NAME>\source\repos\ParquetConsoleApp\ParquetConsoleApp\bin\Debug\netcoreapp3.1\" + blobClient.Name))
{
        using (var w = new ChoParquetWriter(@"C:\Users\<USER NAME>\source\repos\ParquetConsoleApp\ParquetConsoleApp\bin\Debug\netcoreapp3.1\convertedParquet.parquet"))
        {
            w.Write(r);
            w.Close();
         }
}

完成此步骤后,您可以发布到您的 Azure 函数并将 Azure 函数连接器添加到您的逻辑应用程序

您可以跳过前 2 个步骤(即读取和下载 blob)并直接从逻辑应用程序获取 blob 并将其发送到您的 azure 函数并按照与上述相同的方法进行操作。生成的parquet文件会在这个路径下。

C:\Users\<USERNAME>\source\repos\ParquetConsoleApp\ParquetConsoleApp\bin\Debug\netcoreapp3.1\convertedParquet.parquet

这里convertedParquet.parquet是parquet文件的名字。现在您可以在 Apache Parquet reader.

中读取转换后的 parquet 文件

这是输出