gpt4 book ai didi

python - 从 Databrick 文件系统读取文件

转载 作者:行者123 更新时间:2023-12-02 23:58:56 28 4
gpt4 key购买 nike

我使用以下代码从 dbfs 读取 shapefile:

geopandas.read_file("file:/databricks/folderName/fileName.shp")

不幸的是,我无权这样做,并且收到以下错误

DriverError: dbfs:/databricks/folderName/fileName.shp: Permission denied

知道如何授予访问权限吗?文件存在于那里(我有权使用 dbutils 保存文件,而且 - 我可以使用 Spark 从那里读取文件,但我不知道如何使用 pyspark 读取文件)。

添加这些行后:

dbutils.fs.cp("/databricks/folderName/fileName.shp", "file:/tmp/fileName.shp", recurse = True)
geopandas.read_file("/tmp/fileName.shp")

...根据下面的建议,我收到另一个错误。

org.apache.spark.api.python.PythonSecurityException: Path 'file:/tmp/fileName.shp' uses an untrusted filesystem 'org.apache.hadoop.fs.LocalFileSystem', but your administrator has configured Spark to only allow trusted filesystems: (com.databricks.s3a.S3AFileSystem, shaded.databricks.azurebfs.org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem, shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem, com.databricks.adl.AdlFileSystem, shaded.databricks.V2_1_4.com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem, shaded.databricks.org.apache.hadoop.fs.azure.NativeAzureFileSystem, shaded.databricks.org.apache.hadoop.fs.s3a.S3AFileSystem)

最佳答案

GeoPandas 对 DBFS 一无所知 - 它正在使用本地文件。所以你要么需要:

  • 使用 DBFS Fuse 从 DBFS 读取文件(但有一些 limitations ):
geopandas.read_file("/dbfs/databricks/folderName/fileName.shp")
dbutils.fs.cp("/databricks/folderName/fileName.shp", "file:/tmp/fileName.shp", recurse = True)
geopandas.read_file("/tmp/fileName.shp")

附注但如果文件已经复制到驱动节点,那么您只需从名称中删除 file: 即可。

更新问题后更新:

在 AAD 直通集群上可以执行的操作存在限制,因此您的管理员需要按照 documentation on troubleshooting 中的说明更改集群配置。如果您想将文件从 DBFS 复制到本地文件系统。

但是 /dbfs 方式也应该适用于直通集群,尽管它至少应该是 DBR 7.3 ( docs )

关于python - 从 Databrick 文件系统读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67601331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com