无法在 databricks 社区版集群中查找 dbfs 文件。 FileNotFoundError: [Errno 2] 没有这样的文件或目录:

2024-02-29

尝试读取增量日志文件Databricks 社区版簇。 (databricks-7.2版本)

df=spark.range(100).toDF("id")
df.show()
df.repartition(1).write.mode("append").format("delta").save("/user/delta_test")

with open('/user/delta_test/_delta_log/00000000000000000000.json','r')  as f:
  for l in f:
    print(l)

Getting file not found error:

FileNotFoundError: [Errno 2] No such file or directory: '/user/delta_test/_delta_log/00000000000000000000.json'
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<command-1759925981994211> in <module>
----> 1 with open('/user/delta_test/_delta_log/00000000000000000000.json','r')  as f:
      2   for l in f:
      3     print(l)

FileNotFoundError: [Errno 2] No such file or directory: '/user/delta_test/_delta_log/00000000000000000000.json'

我尝试过添加/dbfs/,dbfs:/什么也没解决,仍然遇到同样的错误。

with open('/dbfs/user/delta_test/_delta_log/00000000000000000000.json','r')  as f:
  for l in f:
    print(l)

但使用dbutils.fs.head我能够读取该文件。

dbutils.fs.head("/user/delta_test/_delta_log/00000000000000000000.json")

'{"commitInfo":{"timestamp":1598224183331,"userId":"284520831744638","userName":"","operation":"WRITE","operationParameters":{"mode":"Append","partitionBy":"[]"},"notebook":{"","isolationLevel":"WriteSerializable","isBlindAppend":true,"operationMetrics":{"numFiles":"1","numOutputBytes":"1171","numOutputRows":"100"}}}\n{"protocol":{"minReaderVersi...etc

我们如何阅读/cat adbfs file在数据块中python open method?


默认情况下,这些数据位于 DBFS 上,您的代码需要了解如何访问它。 Python 不知道这一点——这就是它失败的原因。

但有一个解决方法 - DBFS 安装到以下节点/dbfs,所以您只需将其附加到您的文件名:而不是/user/delta_test/_delta_log/00000000000000000000.json, use /dbfs/user/delta_test/_delta_log/00000000000000000000.json

更新:在社区版中,在 DBR 7+ 中,此安装被禁用。解决方法是使用dbutils.fs.cp将文件从 DBFS 复制到本地目录的命令,例如,/tmp, or /var/tmp,然后从中读取:

dbutils.fs.cp("/file_on_dbfs", "file:///tmp/local_file")

请注意,如果您不指定 URI schema,则该文件默认引用 DBFS,并引用您需要使用的本地文件file://前缀(参见docs https://docs.databricks.com/data/databricks-file-system.html#access-files-on-the-local-filesystem).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 databricks 社区版集群中查找 dbfs 文件。 FileNotFoundError: [Errno 2] 没有这样的文件或目录: 的相关文章

随机推荐