csharp/Microsoft.Azure.Databricks.Client.Sample/SampleProgram.cs (79 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using Azure.Identity;
using Microsoft.Azure.Databricks.Client.Converters;
using System;
using System.Net.Http;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace Microsoft.Azure.Databricks.Client.Sample;
internal static partial class SampleProgram
{
private static readonly JsonSerializerOptions Options = new()
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault,
Converters = {
new JsonStringEnumConverter(),
new MillisecondEpochDateTimeConverter(),
new LibraryConverter(),
new SecretScopeConverter(),
new AclPermissionItemConverter(),
new DepedencyConverter(),
new TableConstraintConverter(),
}
};
/// <summary>
/// Must be an existing user in the databricks environment, otherwise you will get a "DIRECTORY_PROTECTED" error.
/// </summary>
private const string DatabricksUserName = "user@company.com";
private const string SampleWorkspacePath = $"/Users/{DatabricksUserName}/SampleWorkspace";
private const string SampleNotebookPath = $"{SampleWorkspacePath}/Quick Start Using Scala";
public static async Task Main(string[] args)
{
DatabricksClient client;
if (args.Length == 0)
{
await Console.Error.WriteLineAsync("Usage: <Azure databricks base url>");
return;
}
if (args.Length == 1)
{
client = DatabricksClient.CreateClient(args[0], new DefaultAzureCredential());
}
else
{
var baseUrl = args[0];
var token = args[1];
client = DatabricksClient.CreateClient(baseUrl, token);
}
Console.WriteLine("Creating client");
using (client)
{
await TestGlobalInitScriptsApi(client);
await TestClusterPoliciesApi(client);
await TestWorkspaceApi(client);
await TestLibrariesApi(client);
await TestSecretsApi(client);
await TestTokenApi(client);
await TestInstancePoolApi(client);
await TestClustersApi(client);
await TestGroupsApi(client);
await TestDbfsApi(client);
await TestJobsApi(client);
await TestPermissionsApi(client);
await TestWarehouseApi(client);
await TestReposApi(client);
await TestPipelineApi(client);
await TestUnityCatalogApi(client);
await TestStatementExecutionApi(client);
await TestExperimentApiClient(client);
}
Console.WriteLine("Press enter to exit");
Console.ReadLine();
}
private static async Task<byte[]> DownloadSampleNotebook()
{
using var httpClient = new HttpClient();
var content = await httpClient.GetByteArrayAsync(
"https://docs.databricks.com/_extras/notebooks/source/mlflow/mlflow-quick-start-scala.html"
);
return content;
}
}