1
私は450KのJSONを持っており、特定のルールに基づいてhdfsで名前を変更したいと思います。わかりやすくするために、私はちょうど接尾辞.finished
をそれぞれに付け加えています。 Aは、次のコードを使用して、これを行うために管理:hdfsのファイル名をより効率的に変更するにはどうすればいいですか?
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を使用します。
そして、どのようにあなたは二つの配列を持っている場合には、例えば、これを行うだろう: 'originalPath'と 'newPath'?だから私は、2つの配列のリネーム機能を適用したい。私はzipとあなたのソリューションで何かを試しましたが、うまくいきません。 – sanyi14ka
私はこの場合にそれを行う方法を考え出しました、そして今は約5分しかかかりません。私は違いが 'par'関数によって作られたと思う。 – sanyi14ka