当前位置: 首页 > 知识库问答 >
问题:

获取Azure Databricks中文件夹和文件的上次修改日期

萧英光
2023-03-14

我需要获取Azure Databricks下DBFS装载点(ADLS Gen1)中所有文件夹和文件的最后修改日期。文件夹结构如下:

Not containing any files, Empty folders:
/dbfs/mnt/ADLS1/LANDING/parent/child/subfolder1
/dbfs/mnt/ADLS1/LANDING/parent/child/subfolder2/subfolder3

Containing some files:
/dbfs/mnt/ADLS1/LANDING/parent/XYZ/subfolder4/File1.txt
/dbfs/mnt/ADLS1/LANDING/parent/XYZ/subfolder5/subfolder6/File2.txt

使用以下Python代码获取最后修改日期:

root_dir = "/dbfs/mnt/ADLS1/LANDING/parent"

def get_directories(root_dir):

    for child in Path(root_dir).iterdir():

        if child.is_file():
            print(child, datetime.fromtimestamp(getmtime(child)).date())
      
        else:
            print(child, datetime.fromtimestamp(getmtime(child)).date())
            get_directories(child)

从上面的代码中,我得到了所有包含文件的文件夹的正确修改日期。

但对于空文件夹,它会给出当前日期。不是上次修改日期。

然而,当我硬编码空文件夹的路径时,它会给出正确的修改日期:

打印(datetime.fromtimestamp(getmtime(“/dbfs/mnt/ADLS1/LANDING/parent/child/subfolder1”))。日期())

有人能帮我一下吗,我在循环中遗漏了什么?

共有1个答案

帅煌
2023-03-14

看来,问题在于处理时间。我给了一个等待时间:时间。睡眠(.000005)。它按预期工作。

 类似资料:
  • 问题内容: 在具有新I / O API的Java7中,是否有一种简便的方法可以按上次修改日期列出目录的内容?基本上,我只需要获取未修改时间最长的文件(按最后修改的升序排序,采用第一个文件名)。 问题答案: 并没有真正的“简便方法”,但是有可能: 这将对文件排序最快,最后修改的文件最后排序。s不会遍历子目录。

  • 我在databricks中安装了一个s3 bucket,我可以看到文件列表,也可以使用python读取文件 我想找出我正在阅读的文件的上次修改日期,我找不到太多,但java选项数据砖读取Azure blob的上次修改日期为azure blob,数据砖中有一个python本机选项来读取文件元数据。

  • 我正在开发一个应用程序,它将在Dropbox上获取文件的最后修改时间和日期,也将在本地计算机上获取文件的最后修改日期(上载时间)和时间,然后在对时间和日期进行比较后,应用程序将决定是上载该文件还是从Dropbox下载该文件。现在我被这个问题困住了,我怎样才能得到最后修改的日期

  • 你好,我正在使用Java连接到IBM AS400。 我希望读取DDS文件上次更改的时间戳,例如上次SQL操作的时间戳()。 另一种方法是运行检查日记及其时间戳。 我如何从Java访问时间戳,例如使用JTOpen或SQL? 谢谢:)

  • 我需要知道如何才能提到"过滤"的文件,例如每天的文件:2到12。 我已经尝试与此代码,但我得到所有的文件日期没有过滤他们 文件日期的结果

  • 问题内容: 我想通过curl获取远程文件的最后修改日期。有谁知道这是怎么做到的吗? 问题答案: 从PHP的文章: filemtime()是这里的关键。但是我不确定是否可以获取 远程 文件的最后修改日期,因为服务器应该将其发送给您……也许在HTTP标头中?