来自 Databricks 的 Azure 存储中的文件元数据,例如时间

File metadata such as time in Azure Storage from Databricks

我正在尝试获取创建文件元数据。

文件位于:Azure 存储
访问数据抛出:Databricks

现在我正在使用:

   file_path = my_storage_path
   dbutils.fs.ls(file_path)

但是 returns

[FileInfo(path='path_myFile.csv', name='fileName.csv', size=437940)]

我没有关于创建时间的任何信息,有办法获取该信息吗?

Whosebug 中的其他解决方案引用的是数据块中已有的文件 Does databricks dbfs support file metadata such as file/folder create date or modified date 在我的例子中,我们从 Databricks 访问数据,但数据在 Azure 存储中。

这实际上取决于您使用的 Databricks Runtime (DBR) 的版本。例如,如果您使用 DBR 10.2,则修改时间戳可用(未使用 10.0/10.1 进行测试,但在 9.1 上绝对不可用):

如果您需要获取该信息,您可以通过 Py4j 网关使用 Hadoop FileSystem API,如下所示:

URI           = sc._gateway.jvm.java.net.URI
Path          = sc._gateway.jvm.org.apache.hadoop.fs.Path
FileSystem    = sc._gateway.jvm.org.apache.hadoop.fs.FileSystem
Configuration = sc._gateway.jvm.org.apache.hadoop.conf.Configuration

fs = FileSystem.get(URI("/tmp"), Configuration())

status = fs.listStatus(Path('/tmp/'))
for fileStatus in status:
    print(f"path={fileStatus.getPath()}, size={fileStatus.getLen()}, mod_time={fileStatus.getModificationTime()}")