【问题标题】:File metadata such as time in Azure Storage from Databricks文件元数据,例如来自 Databricks 的 Azure 存储中的时间
【发布时间】:2022-02-28 17:40:45
【问题描述】:

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

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

我现在正在使用:

   file_path = my_storage_path
   dbutils.fs.ls(file_path)

但它会返回

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

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

Stackoverflow 中的其他解决方案是指数据块中已经存在的文件 Does databricks dbfs support file metadata such as file/folder create date or modified date 就我而言,我们从 Databricks 访问数据,但数据位于 Azure 存储中。

【问题讨论】:

    标签: python azure-storage azure-databricks


    【解决方案1】:

    这实际上取决于您使用的 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()}")
    

    【讨论】:

    • 第二部分对我来说是 Py4j 网关!谢谢:)
    猜你喜欢
    • 2020-10-21
    • 2019-04-22
    • 2020-11-22
    • 2016-05-03
    • 2021-11-14
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多