是否可以更改键值对的键?我从不同的文件夹加载,密钥当前只是文件的路径,但我想将密钥更改为整数,具体取决于文件来自哪个文件夹。
dir_pair_data = sc.wholeTextFiles(mypath)
dir_pair_data = dir_pair_data.map(lambda (x,y) : os.path.dirname(x),y )
当然这不起作用......有没有人对我有所暗示,我是一个非常新鲜的人来煽动蟒蛇......
答案 0 :(得分:2)
我相信下面的一段代码可以通过与其父目录对应的唯一ID来完成你想要的每个文件集的管理(尽管可以肯定的是,它可以优化,因为我对pyspark自己有点新意) :
dir_pair_data = sc.wholeTextFiles(mypath)
dir_pair_data = (dir_pair_data
.map(lambda (x,y): (os.path.dirname(x), y))
.groupByKey()
.values()
.zipWithUniqueId()
.map(lambda x:(x[1], x[0]))
.flatMapValues(lambda x: x))
作为步骤的摘要:
Long
标识符Long
id