Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C将拼花从SQL直接流式处理到S3#_C#_Amazon S3_Parquet - Fatal编程技术网

C# 如何使用C将拼花从SQL直接流式处理到S3#

C# 如何使用C将拼花从SQL直接流式处理到S3#,c#,amazon-s3,parquet,C#,Amazon S3,Parquet,我从SQL中得到一个结果,并在上传到S3之前使用C#将其写入磁盘上的本地临时拼花文件 我正在使用parquet.net库以及s3的所有标准AWS包(我相信是AWSSDK.s3) 请原谅我刚才留下伪代码的某些地方,但这是基本结构。。。我希望能够将行直接流式传输到S3,而不是首先在本地写入文件 提前谢谢 using (var parquetWriter = new ParquetWriter(parquetSchema, fileStream)) { var parquetTable = n

我从SQL中得到一个结果,并在上传到S3之前使用C#将其写入磁盘上的本地临时拼花文件

我正在使用parquet.net库以及s3的所有标准AWS包(我相信是AWSSDK.s3)

请原谅我刚才留下伪代码的某些地方,但这是基本结构。。。我希望能够将行直接流式传输到S3,而不是首先在本地写入文件

提前谢谢

using (var parquetWriter = new ParquetWriter(parquetSchema, fileStream))
{
    var parquetTable = new Parquet.Data.Rows.Table(parquetSchema);
    foreach(object[] data in dataset)
    {
         //prepare data for parquet schema here

         parquetTable.Add(data);
         if (parquettablesize >= number of rows I want to write at one time)
         {
              parquetWriter.Write(parquetTable);
              parquetTable = new Parquet.Data.Rows.Table(parquetSchema); //cant reuse the same object
         }
    }

    // write whatever is left here
    if (parquetTable.Count > 0)
          parquetWriter.Write(parquetTable);


    using (var fileStream = new FileStream(tempFile, FileMode.Open))
    {
         //upload the file to my S3 location
    }
}

不久前,我试图解决一个类似的问题,但找不到任何干净简单的解决方案。中间文件或内存流是一种方法。代码最少,出错的可能性最小。@OptionalOption这很不幸……不久前我试图解决一个类似的问题,但找不到任何干净简单的解决方案。中间文件或内存流是一种方法。代码最少,出错的可能性最小。@OptionalOption这是不幸的。。。