Databricks社区版pandas无法访问DBFS中dbutils可识别文件如何解决?
根因说明
Databricks Community Edition 版本默认未提供DBFS的FUSE本地挂载支持,因此pandas无法直接识别并访问/dbfs开头的路径格式;dbutils.fs相关命令是直接调用DBFS原生接口访问存储,所以可以正常查询到文件。
可行解决方案
- 方案1:先通过Spark读取文件,再转换为Pandas DataFrame(最推荐,适配DBFS原生访问规则)
# 读取DBFS上的csv文件,可根据实际需求调整header、分隔符、编码等参数 spark_df = spark.read.csv("dbfs:/FileStore/shared_uploads/name_surname@xxx.xxx/file_name.csv", header=True, inferSchema=True) # 转换为标准pandas DataFrame pandas_df = spark_df.toPandas()
- 方案2:如果必须调用pandas原生读取方法,先将文件复制到集群本地临时目录再读取
# 将DBFS中的文件复制到集群本地/tmp目录 dbutils.fs.cp("dbfs:/FileStore/shared_uploads/name_surname@xxx.xxx/file_name.csv", "file:/tmp/file_name.csv") # 直接读取本地路径下的文件 import pandas as pd pandas_df = pd.read_csv("/tmp/file_name.csv")
注意:集群本地临时目录的文件会在集群重启后自动清除,无需手动清理,下次使用时重新执行复制操作即可。
内容的提问来源于stack exchange,提问作者QbS
相关产品推荐
相关产品推荐

