Databricks读取Gen2存储.tpe文件遇FileNotFoundError求解决方案
解决Databricks中直接读取Azure Gen2存储.tpe文件的问题
错误原因
Python内置的open函数仅能访问本地文件系统路径,而你使用的/mnt/开头的路径是Databricks File System(DBFS)的逻辑路径,并非本地文件系统可直接识别的路径,因此触发FileNotFoundError。
解决方案
方案一:转换为本地可访问路径
DBFS在Databricks集群的本地文件系统中有一个挂载点/dbfs,只需给原挂载路径添加该前缀,即可用open直接读取:
gen2_path = f'/dbfs/mnt/{CONTAINER}@{STORAGE_ACCOUNT}/test/input/example.tpe' with open(gen2_path, "rb") as f: byte = f.read(1)
方案二:使用PySpark二进制文件API(无需dbutils)
如果需要批量处理或结合Spark生态,可使用PySpark的二进制文件读取接口,直接读取DBFS逻辑路径下的文件:
from pyspark.sql.functions import input_file_name # 读取单个.tpe文件 df = spark.read.format("binaryFile").load(f"/mnt/{CONTAINER}@{STORAGE_ACCOUNT}/test/input/example.tpe") # 获取文件内容与路径 file_data = df.select("content", input_file_name()).first() # 将二进制内容转为字节流 byte_content = file_data.content
内容的提问来源于stack exchange,提问作者userrrr
相关产品推荐
相关产品推荐

