在Logic App工作流中另存为.PARQUET文件 [英] Save as .PARQUET file in Logic App workflow

查看:19
本文介绍了在Logic App工作流中另存为.PARQUET文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何以.PARQUET文件格式保存运行查询并列出结果中的输出文件。

这是我当前的工作流。

My Logic App正在运行,但每次在ApacheParquet查看器中查看创建的.parket文件时,该文件都无效

有人能在这件事上帮我忙吗?谢谢!

输出:

推荐答案

我看到您正在尝试将.parket添加到您正在接收的csv文件中,但它不会以这种方式转换为拼图文件。

您可以尝试的解决方法之一是获取CSV文件,然后添加可转换为拼图文件的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
eposParquetConsoleAppParquetConsoleAppinDebug
etcoreapp3.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
eposParquetConsoleAppParquetConsoleAppinDebug
etcoreapp3.1" + blobClient.Name))
{
        using (var w = new ChoParquetWriter(@"C:Users<USER NAME>source
eposParquetConsoleAppParquetConsoleAppinDebug
etcoreapp3.1convertedParquet.parquet"))
        {
            w.Write(r);
            w.Close();
         }
}

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

您可以跳过前两个步骤(即读取并下载BLOB),然后直接从逻辑应用程序获取BLOB并将其发送到您的Azure函数,然后按照上述相同的方法进行操作。生成的拼图文件将位于此路径中。

C:Users<USERNAME>source
eposParquetConsoleAppParquetConsoleAppinDebug
etcoreapp3.1convertedParquet.parquet

这里convertedParquet.parquet是镶木地板文件的名称。现在,您可以在ApacheParket阅读器中读取转换后的拼图文件。

以下是输出

这篇关于在Logic App工作流中另存为.PARQUET文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆