Функция C # Azure сравнивает изменения между двумя BLOB-объектами - PullRequest
0 голосов
/ 28 января 2019

Я работаю над функцией Azure, которая должна читать два файла .csv, хранящиеся в виде BLOB-объектов в хранилище BLOB-объектов Azure, и возвращать третий, новый объект BLOB со строками, которые различаются между обоими входными объектами.

Например,:

csv1:
12,aaa,bbb,ccc,ddd,eee,fff
13,aaa,bbb,ccc,ddd,eee,fff

csv2:
12,bbb,aaa,ccc,ddd,eee,fff
13,aaa,bbb,ccc,ddd,eee,fff
14,aaa,bbb,ccc,ddd,eee,fff

Output csv:
12,bbb,aaa,ccc,ddd,eee,fff
14,aaa,bbb,ccc,ddd,eee,fff

До сих пор мне удавалось читать файлы BLOB-объектов, но я не смог их напрямую сравнить.Мне удалось заставить его работать, читая в BLOB-объектах, загружая их в два разных Datatables и сравнивая их.Тем не менее, этот метод слишком медленный, и я уверен, что есть гораздо более эффективный способ его обработки.

(Будучи более уверенным в работе с Powershell, функция Compare-Object - это как раз то, что я хотел былюблю создавать).

Я могу загрузить в BLOB-объекты, используя методы .DownloadText () или .DownloadToStream (), поэтому получение содержимого BLOB-объектов не является проблемой.

blobA = container.GetBlockBlobReference("FileA");
blobB = container.GetBlockBlobReference("FileB");

string blobContentsA = blobA.DownloadText();
string blobContentsB = blobB.DownloadText();

или

string textA;
using (var memoryStream = new MemoryStream())
  {
  blobA.DownloadToStream(memoryStream);
  textA = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
  }

string textB;
using (var memoryStream = new MemoryStream())
  {
  blobA.DownloadToStream(memoryStream);
  textB = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
  }

Я попробовал приведенный ниже код, но затем я получаю сообщение «невозможно преобразовать из« System.Collections.Generic.IEnumerable »в« строку »», так что я должен что-то там делать, но чтоЯ понятия не имею, если честно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...