使用pyspark将文件名和文件modification/creation时间作为(键,值)对放入RDD
get filename and file modification/creation time as (key, value) pair into RDD using pyspark
我的文件夹中有很多文件(例如超过 100k),有些文件很小(不到 1kb),有些文件很大(例如几 MB)。
我想使用 pyspark 扫描这些文件夹下的所有文件,例如“C:\香”。例如,文件名是
文件夹 1:
C:\Xiang\fold1\filename1.txt
C:\Xiang\fold1\filename2.txt
C:\Xiang\fold1\filename3.txt
C:\Xiang\fold1\filename1_.meta.txt
C:\Xiang\fold1\filename2_.meta.txt
...
“fold2”、“fold3”...具有相似的结构。
我想扫描这些文件夹下的所有文件,并获取每个文件的修改时间。理想情况下,它可以保存到 RDD 中,pair as (key, value) with key filename (e.g. C:\Xiang\filename1.txt) and value the modification time (e.g. 2020-12-16 13:40).这样我就可以对这些文件执行进一步的操作,例如按修改时间过滤并打开所选文件。 ...
有什么想法吗?
使用pathlib
获取最后修改时间并映射到你的文件名rdd:
import os
import pathlib
rdd = sc.parallelize(os.listdir("C:\Xiang")) # try slash if backslash doesn't work
rdd2 = rdd.keyBy(lambda x: x).map(lambda f: (f[0], pathlib.Path(f[1]).stat().st_mtime))
我的文件夹中有很多文件(例如超过 100k),有些文件很小(不到 1kb),有些文件很大(例如几 MB)。
我想使用 pyspark 扫描这些文件夹下的所有文件,例如“C:\香”。例如,文件名是 文件夹 1:
C:\Xiang\fold1\filename1.txt
C:\Xiang\fold1\filename2.txt
C:\Xiang\fold1\filename3.txt
C:\Xiang\fold1\filename1_.meta.txt
C:\Xiang\fold1\filename2_.meta.txt
...
“fold2”、“fold3”...具有相似的结构。
我想扫描这些文件夹下的所有文件,并获取每个文件的修改时间。理想情况下,它可以保存到 RDD 中,pair as (key, value) with key filename (e.g. C:\Xiang\filename1.txt) and value the modification time (e.g. 2020-12-16 13:40).这样我就可以对这些文件执行进一步的操作,例如按修改时间过滤并打开所选文件。 ...
有什么想法吗?
使用pathlib
获取最后修改时间并映射到你的文件名rdd:
import os
import pathlib
rdd = sc.parallelize(os.listdir("C:\Xiang")) # try slash if backslash doesn't work
rdd2 = rdd.keyBy(lambda x: x).map(lambda f: (f[0], pathlib.Path(f[1]).stat().st_mtime))