我有 450K JSON,我想根据某些规则在 hdfs 中重命名它们。为了简单起见,我只添加一个后缀.finished
给他们每个人。
A 成功地做到了这一点,代码如下:
import org.apache.hadoop.fs._
val hdfs = FileSystem.get(sc.hadoopConfiguration)
val files = hdfs.listStatus(new Path(pathToJson))
val originalPath = files.map(_.getPath())
for(i <- originalPath.indices)
{
hdfs.rename(originalPath(i), originalPath(i).suffix(".finished"))
}
但全部重命名需要 12 分钟。有没有办法让它更快? (也许并行)
我使用火花1.6.0。
原始路径.par.foreach( e => hdfs.rename(e,e.suffix("完成")))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)