импортировать данные таблицы и сохранять как json документов в adls gen2 с помощью блоков данных - PullRequest
1 голос
/ 03 августа 2020

Я использую приведенный ниже код для создания набора результатов json из таблицы сервера sql.

Powershell:

$InstanceName = "SQLTEST1\ENG_TST1"
$connectionString = "Server=$InstanceName;Database=dbadb;Integrated Security=True;"

$query = "SELECT * FROM dbo.sales"

$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString

$connection.Open()
$command = $connection.CreateCommand()
$command.CommandText = $query

$result = $command.ExecuteReader()

$table = new-object "System.Data.DataTable"

$table.Load($result)

$table | select $table.Columns.ColumnName | ConvertTo-Json

$connection.Close()

Не могли бы вы помочь мне для хранения json документов в Azure Data Lake Storage Gen2, используя Azure Databricks.

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Вы можете использовать df.write.json API для записи в любое указанное c место в соответствии с вашими потребностями.

Синтаксис: df.write.json('location where you want to save the json file')

Пример: df.write.json("abfss://<file_system>@<storage-account-name>.dfs.core.windows.net/iot_devices.json")

Вот шаги для сохранения документов JSON в Azure Data Lake Gen2 с использованием Azure Databricks.

Шаг 1: Вы можете использовать spark.read.json API для чтения файла json и создания фрейма данных.

Шаг 2: Место хранения больших двоичных объектов может быть подключено к каталог databricks dbfs, используя приведенные ниже инструкции, выполните c

https://docs.microsoft.com/en-us/azure/databricks/data/data-sources/azure/azure-datalake-gen2

Step3: Затем используйте df.write.json API для запись в точку монтирования, которая будет записывать в хранилище BLOB-объектов

Подробнее см. в следующих статьях:

Azure Databricks - JSON файлы

Пример записной книжки: https://docs.microsoft.com/en-us/azure/databricks/_static/notebooks/adls-passthrough-gen2.html

введите описание изображения здесь

2 голосов
/ 04 августа 2020

Если вы хотите сохранить файл в Azure озере данных Gen2 в Azure блоках данных, выполните следующие шаги

  1. Создайте учетную запись Azure Data Lake Storage Gen2.
az login
az storage account create \
    --name <account-name> \
    --resource-group <group name> \
    --location westus \
    --sku Standard_RAGRS \
    --kind StorageV2 \
    --enable-hierarchical-namespace true
Создайте принципала службы и назначьте участника службы хранилища BLOB-объектов для sp в области учетной записи хранения Data Lake Storage Gen2
az login

az ad sp create-for-rbac -n "MyApp" --role "Storage Blob Data Contributor" \
    --scopes /subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>

Создать кластер Spark в Azure Databricks

mount Azure data lake gen2 в Azure Databricks (python)

configs = {"fs.azure.account.auth.type": "OAuth",
       "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
       "fs.azure.account.oauth2.client.id": "<appId>",
       "fs.azure.account.oauth2.client.secret": "<clientSecret>",
       "fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<tenant>/oauth2/token",
       "fs.azure.createRemoteFileSystemDuringInitialization": "true"}

dbutils.fs.mount(
source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/folder1",
mount_point = "/mnt/flightdata",
extra_configs = configs)
сохранить json в azure озеро данных gen2
dbutils.fs.put("/mnt/flightdata/<file name>", """
<json string>
""", True)

enter image description here

введите описание изображения здесь

...