This post is how to work with mounts on Synapse.
I suggest mounting to an ADLS storage account. That is what I will assume in the below examples.
List Mounts
from notebookutils import mssparkutils
mssparkutils.fs.mounts()
Get Mount Path
The output of this command will produce ‘/synfs/<number>/mnt/<CONTAINER_NAME>’
from notebookutils import mssparkutils
mount_name = "/mnt/<CONTAINER_NAME>"
mount_path = mssparkutils.fs.getMountPath(mount_name)
Unmount
from notebookutils import mssparkutils
mount_name = "/mnt/<CONTAINER_NAME>"
mssparkutils.fs.unmount(mount_name)
Mount Using a Linked Service
First you must have a linked service created to the storage account. This linked service must be hard-coded and not parameterized in any way.
from notebookutils import mssparkutils
container = '<CONTAINER_NAME>'
storage_account = '<STORAGE_ACCOUNT_NAME>'
sub_folder = '<SUB_FOLDER>' #it should be noted that this isn't required.
linked_service_name = '<LINKED_SERVICE_NAME>'
mssparkutils.fs.mount(
source='abfss://%s@%s.dfs.core.windows.net/%s/' % (container, storage_account, sub_folder),
mountPoint='/mnt/%s' % (container),
{'linkedService':linked_service_name, 'fileCacheTimeout': 120, 'timeout': 120}
)
Mount Using Configs
You will need to get the secret. Refer to Synapse: Get Secret
from notebookutils import mssparkutils
client_id = '<CLIENT_ID>'
tenant_id = '<TENANT_ID>'
container = '<CONTAINER_NAME>'
storage_account = '<STORAGE_ACCOUNT_NAME>'
sub_folder = '<SUB_FOLDER>' #it should be noted that this isn't required.
configs = {
"fs.azure.account.auth.type": "OAuth",
"fs.azure.account.oauth.provider.type": "org.apache.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id": client_id,
"fs.azure.account.oauth2.client.secret": secret,
"fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/" tenant_id + "/oauth2/token"
}
mssparkutils.fs.mount(
source='abfss://%s@%s.dfs.core.windows.net/%s' % (container, storage_account, sub_folder),
mountPoint='/mnt/%s' % (container),
extraConfigs=configs
)
You must be logged in to post a comment.