Azure Databricks 在 Blob 存储上打开文件时出现问题
Problems with Azure Databricks opening a file on the Blob Storage
借助 Azure Databricks,我能够列出 blob 存储中的文件,将它们放入数组中。
但是当我尝试打开其中一个文件时出现错误。可能是由于特殊的语法。
storage_account_name = "tesb"
storage_container_name = "rttracking-in"
storage_account_access_key = "xyz"
file_location = "wasbs://rttracking-in"
file_type = "xml"
spark.conf.set(
"fs.azure.account.key."+storage_account_name+".blob.core.windows.net",
storage_account_access_key)
xmlfiles = dbutils.fs.ls("wasbs://"+storage_container_name+"@"+storage_account_name+".blob.core.windows.net/")
import pandas as pd
import xml.etree.ElementTree as ET
import re
import os
firstfile = xmlfiles[0].path
root = ET.parse(firstfile).getroot()
错误是
IOError: [Errno 2] 没有那个文件或目录: u'wasbs://rttracking-in@tstoweuyptoesb.blob.core.windows.net/rtTracking_00001.xml'
我的猜测是 ET.parse()
不知道您在其中设置与存储帐户的连接的 Spark 上下文。或者,您可以尝试安装存储。然后你就可以像访问本地文件一样通过本地路径访问文件了。
这应该可以工作:
root = ET.parse("/mnt/<mount-name>/...")
我确实安装了存储,然后这就成功了
firstfile = xmlfiles[0].path.replace('dbfs:','/dbfs')
root = ET.parse(firstfile).getroot()
借助 Azure Databricks,我能够列出 blob 存储中的文件,将它们放入数组中。 但是当我尝试打开其中一个文件时出现错误。可能是由于特殊的语法。
storage_account_name = "tesb"
storage_container_name = "rttracking-in"
storage_account_access_key = "xyz"
file_location = "wasbs://rttracking-in"
file_type = "xml"
spark.conf.set(
"fs.azure.account.key."+storage_account_name+".blob.core.windows.net",
storage_account_access_key)
xmlfiles = dbutils.fs.ls("wasbs://"+storage_container_name+"@"+storage_account_name+".blob.core.windows.net/")
import pandas as pd
import xml.etree.ElementTree as ET
import re
import os
firstfile = xmlfiles[0].path
root = ET.parse(firstfile).getroot()
错误是
IOError: [Errno 2] 没有那个文件或目录: u'wasbs://rttracking-in@tstoweuyptoesb.blob.core.windows.net/rtTracking_00001.xml'
我的猜测是 ET.parse()
不知道您在其中设置与存储帐户的连接的 Spark 上下文。或者,您可以尝试安装存储。然后你就可以像访问本地文件一样通过本地路径访问文件了。
这应该可以工作:
root = ET.parse("/mnt/<mount-name>/...")
我确实安装了存储,然后这就成功了
firstfile = xmlfiles[0].path.replace('dbfs:','/dbfs') root = ET.parse(firstfile).getroot()