我有450K JSON,我想根据某些规则在hdfs中重命名它们。为了简单起见,我只为每一个添加后缀.finished
。
设法使用以下代码执行此操作:
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分钟。有没有办法让它更快? (也许并行化) 我使用spark 1.6.0。
答案 0 :(得分:4)
originalpath.par.foreach(e =&gt; hdfs.rename(e,e.suffix(“finish”)))