Я ищу решение для переименования нескольких файлов данных в HDFS, я сказал 26000 файлов данных /data/sample/_file.json.zip с тем же именем и удалением .zip из конца файла, такого как /data/ образец/_file.json
что я хочу сделать, как ..
Для одного файла я могу сделать как
hdfs dfs -mv /data/sample/abc12300021b9_file.json.zip /data/sample/abc12300021b9_file.json
Что я хотел бы сделать, так это переименовать все 26000 файлов данных, например, я получаю следующее сообщение
hdfs dfs -mv /data/sample/*_file.json.zip /data/sample/*_file.json
mv: `/data/sample/*_file.json': Слишком много совпадений
Этот код делает то, что я хочу, НО проблема в том, что он очень медленный, он хорош для 100 или 200 файлов данных, ОЧЕНЬ МЕДЛЕННО, когда я детализирую тысячи файлов.
#!/bin/bash
source_dir=/data/sample/
$(hdfs dfs -test -e ${source_dir})
hdfs dfs -ls "${source_dir}/*.zip" | awk '{print $8}' | while read FILE; do
FILENAME="$(basename "${FILE}")"
new_name=${FILENAME::-4}
hdfs dfs -mv "${source_dir}/${FILENAME}" "${source_dir}/${new_name}"
done
abc12300021b9
есть ли у вас последовательность имен? 12.04.2019