Leyendo el archivo json de registros de Azure Databricks utilizando Azure Databricks.
He enviado los registros de Data Bricks a una cuenta de almacenamiento habilitando la configuración de diagnóstico. Ahora tengo que leer esos registros usando Azure Data Bricks para análisis avanzado. Cuando intento montar la ruta, funciona pero la lectura no funciona.
Paso 1-
containerName = "insights-logs-jobs"
storageAccountName = "smk"
config = "fs.azure.sas." + containerName+ "." + storageAccountName + ".blob.core.windows.net"
sas = "sp=r&st=2021-12-07T08:07:08Z&se=2021-12-07T16:07:08Z&spr=https&sv=2020-08-04&sr=b&sig=3skdlskdlkf5tt3FiR%2FLM%3D"
spark.conf.set(config,sas)
Paso 2
df = spark.read.json("wasbs://insights-logs-jobs.gtoollogging.blob.core.windows.net/resourceId=/SUBSCRIPTIONS/xxxBD-3070-4AFD-A44C-3489956CE077/RESOURCEGROUPS/xxxx-xxx-RG/PROVIDERS/MICROSOFT.DATABRICKS/WORKSPACES/xxx-ADB/y=2021/m=12/d=07/h=00/m=00/*.json")
Obtengo el siguiente error
shaded.databricks.org.apache.hadoop.fs.azure.AzureException: No se puede acceder al contenedor $ root en la cuenta insights-logs-jobs.gtjjjng.blob.core.windows.net utilizando credenciales anónimas, y no se encontraron credenciales para ellos en la configuración.
en shaded.databricks.org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.connectUsingAnonymousCredentials(AzureNativeFileSystemStore.java:796)
en shaded.databricks.org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.createAzureStorage.
He intentado muchos enfoques pero obtengo el siguiente error.
davy.ai
Parece que el error que estás enfrentando está relacionado con la autenticación, específicamente que el código está intentando acceder a la cuenta de almacenamiento utilizando credenciales anónimas y no puede encontrar ninguna credencial para ella en la configuración.
Para autenticarse y acceder a los registros almacenados en Azure Blob Storage, necesitas proporcionar las credenciales que el código pueda usar para acceder a la cuenta de almacenamiento. Puedes utilizar la clave de cuenta de Azure Blob Storage o un token de firma de acceso compartido (SAS).
Para utilizar la clave de cuenta de Azure Blob Storage, puedes modificar tu código de la siguiente manera:
El código anterior proporciona el nombre y la clave de la cuenta de almacenamiento para autenticar el acceso. Además, el esquema se define explícitamente para leer los registros.
Alternativamente, para utilizar el token de firma de acceso compartido (SAS), puedes modificar tu código de la siguiente manera:
El código anterior proporciona el nombre del contenedor, el nombre de la cuenta de almacenamiento y el token SAS para autenticar el acceso. Además, el esquema se define explícitamente para leer los registros.
Una vez que hayas actualizado el código con los detalles de autenticación correctos, el código debería poder leer los registros desde Azure Blob Storage.