Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara oraQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Microsoft ha annunciato il ritiro pianificato di Azure Data Lake Storage Gen1 (in precedenza Azure Data Lake Store, noto anche come ADLS) e consiglia a tutti gli utenti di eseguire la migrazione ad Azure Data Lake Storage Gen2. Databricks consiglia di eseguire l'aggiornamento ad Azure Data Lake Storage Gen2 per ottenere prestazioni ottimali e nuove caratteristiche.
Esistono due modi per accedere ad Azure Data Lake Storage Gen1:
È possibile autenticarsi automaticamente in Azure Data Lake Storage Gen1 dai cluster Azure Databricks utilizzando la stessa identità Microsoft Entra ID che si usa per accedere ad Azure Databricks. Quando si abilita il cluster per il pass-through delle credenziali Microsoft Entra ID, i comandi eseguiti sul cluster saranno in grado di leggere e scrivere i dati in Azure Data Lake Storage Gen1 senza richiedere la configurazione delle credenziali dell’entità servizio per l'accesso all’archiviazione.
Per istruzioni complete sull'installazione e sull'utilizzo, vedere Accedere ad Azure Data Lake Storage usando il pass-through delle credenziali di Microsoft Entra ID (legacy).
Se il metodo di accesso selezionato richiede un'entità servizio con autorizzazioni adeguate e non ne è disponibile alcuna, seguire questa procedura:
application-id
: ID che identifica l'applicazione client in modo univoco.directory-id
: ID che identifica in modo univoco l'istanza di Microsoft Entra ID.service-credential
: stringa usata dall'applicazione per dimostrare la su identità.Per leggere dall'account Azure Data Lake Storage Gen1, è possibile configurare Spark per l'uso delle credenziali del servizio con il frammento di codice seguente nel Notebook:
spark.conf.set("fs.adl.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("fs.adl.oauth2.client.id", "<application-id>")
spark.conf.set("fs.adl.oauth2.credential", dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"))
spark.conf.set("fs.adl.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
where
dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")
recupera la chiave di accesso dell'account di archiviazione archiviata come segreto in un ambito segreto.Dopo aver configurato le credenziali, è possibile usare le API Spark e Databricks standard per accedere alle risorse. Ad esempio:
val df = spark.read.format("parquet").load("adl://<storage-resource>.azuredatalakestore.net/<directory-name>")
dbutils.fs.ls("adl://<storage-resource>.azuredatalakestore.net/<directory-name>")
Azure Data Lake Storage Gen1 fornisce il controllo di accesso a livello di directory, pertanto l'entità servizio deve avere accesso alle directory da cui si vuole leggere e alla risorsa Azure Data Lake Storage Gen1.
Per accedere alle posizioni adl://
specificate nel metastore, è necessario indicare le opzioni di configurazione delle credenziali hadoop come opzioni Spark quando si crea il cluster aggiungendo il prefisso spark.hadoop.
alle chiavi di configurazione Hadoop corrispondenti per propagarle alle configurazioni hadoop usate dal metastore:
spark.hadoop.fs.adl.oauth2.access.token.provider.type ClientCredential
spark.hadoop.fs.adl.oauth2.client.id <application-id>
spark.hadoop.fs.adl.oauth2.credential <service-credential>
spark.hadoop.fs.adl.oauth2.refresh.url https://login.microsoftonline.com/<directory-id>/oauth2/token
Avviso
Per montare una risorsa di Azure Data Lake Storage Gen1 o una cartella al suo interno, usare il comando seguente:
configs = {"fs.adl.oauth2.access.token.provider.type": "ClientCredential",
"fs.adl.oauth2.client.id": "<application-id>",
"fs.adl.oauth2.credential": dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"),
"fs.adl.oauth2.refresh.url": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}
# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "adl://<storage-resource>.azuredatalakestore.net/<directory-name>",
mount_point = "/mnt/<mount-name>",
extra_configs = configs)
val configs = Map(
"fs.adl.oauth2.access.token.provider.type" -> "ClientCredential",
"fs.adl.oauth2.client.id" -> "<application-id>",
"fs.adl.oauth2.credential" -> dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"),
"fs.adl.oauth2.refresh.url" -> "https://login.microsoftonline.com/<directory-id>/oauth2/token")
// Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "adl://<storage-resource>.azuredatalakestore.net/<directory-name>",
mountPoint = "/mnt/<mount-name>",
extraConfigs = configs)
where
<mount-name>
è un percorso DBFS che indica dove verrà montato l'account Azure Data Lake Storage Gen1 o una cartella all'interno di essa (specificato in source
) in DBFS.dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")
recupera la chiave di accesso dell'account di archiviazione archiviata come segreto in un ambito segreto.Accedere ai file nel contenitore come se fossero file locali, ad esempio:
df = spark.read.format("text").load("/mnt/<mount-name>/....")
df = spark.read.format("text").load("dbfs:/mnt/<mount-name>/....")
val df = spark.read.format("text").load("/mnt/<mount-name>/....")
val df = spark.read.format("text").load("dbfs:/mnt/<mount-name>/....")
È possibile configurare le credenziali del servizio per più account Azure Data Lake Storage Gen1 da usare all'interno di una singola sessione Spark aggiungendo account.<account-name>
alle chiavi di configurazione. Ad esempio, se si vogliono configurare le credenziali per entrambi gli account a cui accedere adl://example1.azuredatalakestore.net
e adl://example2.azuredatalakestore.net
, è possibile eseguire questa operazione come indicato di seguito:
spark.conf.set("fs.adl.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("fs.adl.account.example1.oauth2.client.id", "<application-id-example1>")
spark.conf.set("fs.adl.account.example1.oauth2.credential", dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential-example1>"))
spark.conf.set("fs.adl.account.example1.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id-example1>/oauth2/token")
spark.conf.set("fs.adl.account.example2.oauth2.client.id", "<application-id-example2>")
spark.conf.set("fs.adl.account.example2.oauth2.credential", dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential-example2>"))
spark.conf.set("fs.adl.account.example2.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id-example2>/oauth2/token")
Questa operazione funziona anche per la configurazione di Spark del cluster:
spark.hadoop.fs.adl.oauth2.access.token.provider.type ClientCredential
spark.hadoop.fs.adl.account.example1.oauth2.client.id <application-id-example1>
spark.hadoop.fs.adl.account.example1.oauth2.credential <service-credential-example1>
spark.hadoop.fs.adl.account.example1.oauth2.refresh.url https://login.microsoftonline.com/<directory-id-example1>/oauth2/token
spark.hadoop.fs.adl.account.example2.oauth2.client.id <application-id-example2>
spark.hadoop.fs.adl.account.example2.oauth2.credential <service-credential-example2>
spark.hadoop.fs.adl.account.example2.oauth2.refresh.url https://login.microsoftonline.com/<directory-id-example2>/oauth2/token
Il Notebook seguente illustra come accedere ad Azure Data Lake Storage Gen1, direttamente e con un montaggio.
Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara ora