У меня есть коллекция объектов List базового класса, полученная из сериализации JSON, теперь, прежде чем записывать данные в таблицу, мне нужно иметь копию данных в озере данных Azure.с примером кода ниже я могу создать папку и образец файла.Пожалуйста, объясните, как записать данные непосредственно в список объектов коллекции в файл ADLS
Код:
Console.WriteLine("Folder Creation Started...");
Console.WriteLine("================================================");
var adlsAccountName = "sampledatalake";
var people = new List<Person> { new Person { FirstName="John", LasttName="Matthew"}, new Person { FirstName = "John", LasttName = "Smith" } };
var applicationId = "<Applicationid>";
var secretKey = "<secret key>";
var tenantId = "<tenantid>";
var creds = ApplicationTokenProvider.LoginSilentAsync(tenantId, applicationId, secretKey).Result;
var adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds, clientTimeoutInMinutes: 60);
var filePath = "/Sample/" + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString("00") + "/" + DateTime.Now.Day.ToString("00");
if (!adlsFileSystemClient.FileSystem.PathExists(adlsAccountName, filePath))
{
adlsFileSystemClient.FileSystem.Mkdirs(adlsAccountName, filePath);
}
adlsFileSystemClient.FileSystem.Create(adlsAccountName, filePath+"/Sample.txt", null, null, null, null, null);
================= РЕДАКТИРОВАТЬ ============
Это то, что я получаю при записи данных в файл в ADLS, дайте мне знать, если есть какие-либо ограничения с этим подходом
var adlsAccountName = "sampledatalake";
var people = new List<Person> { new Person { FirstName="John", LasttName="Matthew"}, new Person { FirstName = "John", LasttName = "Smith" } };
var applicationId = "<Applicationid>";
var secretKey = "<secret key>";
var tenantId = "<tenantid>";
var creds = ApplicationTokenProvider.LoginSilentAsync(tenantId, applicationId, secretKey).Result;
var adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds, clientTimeoutInMinutes: 60);
var filePath = "/Sample/" + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString("00") + "/" + DateTime.Now.Day.ToString("00");
if (!adlsFileSystemClient.FileSystem.PathExists(adlsAccountName, filePath))
{
adlsFileSystemClient.FileSystem.Mkdirs(adlsAccountName, filePath);
}
adlsFileSystemClient.FileSystem.Create(adlsAccountName, filePath+"/Sample.txt", null, null, null, null, null);
using (MemoryStream memStreamLikes = new MemoryStream())
{
using (TextWriter textWriter = new StreamWriter(memStreamLikes))
{
string text;
textWriter.WriteLine("First Name, Last Name");
foreach (var item in people)
{
text = item.FirstName + "," + item.LasttName;
textWriter.WriteLine(text);
}
textWriter.Flush();
memStreamLikes.Flush();
byte[] textByteArray = memStreamLikes.ToArray();
adlsFileSystemClient.FileSystem.Append(adlsAccountName, filePath + "/Sample.txt", new MemoryStream(textByteArray,0,textByteArray.Length), null, null, null, null);
}
}