[HADOOP] HDFS에서 파일 이름 만 나열하는 방법
HADOOPHDFS에서 파일 이름 만 나열하는 방법
hadoop에 파일 이름 만 가져 오는 명령 / 표현식이 있는지 알고 싶습니다. 나는 파일의 이름 만 가져올 필요가있다. 내가 hadoop fs -ls를 실행하면 전체 경로를 출력한다.
나는 아래에서 그것을 시도했다. 그러나 그것을하는 더 좋은 약간의 방법이라면 단지 궁금하게 생각한다.
hadoop fs -ls <HDFS_DIR>|cut -d ' ' -f17
해결법
-
==============================
1.hadoop ls는 파일 이름이나 심지어 마지막 열만 출력하는 옵션을 지원하지 않는 것 같습니다.
hadoop ls는 파일 이름이나 심지어 마지막 열만 출력하는 옵션을 지원하지 않는 것 같습니다.
마지막 열을 안정적으로 얻으려면 먼저 공백을 단일 공백으로 변환해야 마지막 열을 지정할 수 있습니다.
hadoop fs -ls | sed '1d;s/ */ /g' | cut -d\ -f8
이렇게하면 마지막 열이 표시되지만 전체 경로가 포함 된 파일이됩니다. 파일 이름 만 원하면 @rojomoke가 제시하는 basename을 사용할 수 있습니다 :
hadoop fs -ls | sed '1d;s/ */ /g' | cut -d\ -f8 | xargs -n 1 basename
또한 Found? x items라고 쓰여있는 첫 번째 줄을 필터링했습니다.
주의 : 주석에서 @ felix-frank 노트처럼, 위의 명령은 파일 이름을 여러 개의 연속 공백으로 올바르게 보존하지 않습니다. 따라서 Felix가 제안한보다 정확한 해결책 :
hadoop fs -ls / tmp | sed 1d | perl -wlne'print + (split "", $ _, 8) [7] '
-
==============================
2.다음 명령은 파일 이름 만 반환합니다.
다음 명령은 파일 이름 만 반환합니다.
hdfs dfs -stat "%n" my/path/*
-
==============================
3.나는 이것이 누군가를 돕기를 희망한다 - 버전 2.8.x + (3에서 또한 유효하다)로 -
나는 이것이 누군가를 돕기를 희망한다 - 버전 2.8.x + (3에서 또한 유효하다)로 -
hadoop fs -ls -C /paths/
-
==============================
4.
hadoop fs -ls -C /path/* | xargs -n 1 basename
-
==============================
5.문자열에서 '/'로 끝나는 모든 접두어를 제거하는 basename 명령을 사용하십시오.
문자열에서 '/'로 끝나는 모든 접두어를 제거하는 basename 명령을 사용하십시오.
basename $(hadoop fs -ls)
-
==============================
6.아래 명령은 디렉토리의 파일 이름 만 반환합니다. Awk '/'로 목록을 분할하고 파일 이름이 될 마지막 필드를 인쇄합니다.
아래 명령은 디렉토리의 파일 이름 만 반환합니다. Awk '/'로 목록을 분할하고 파일 이름이 될 마지막 필드를 인쇄합니다.
hdfs dfs -ls /
| awk -F '/' '{print $ NF}'
from https://stackoverflow.com/questions/21569172/how-to-list-only-the-file-names-in-hdfs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HBase : 복제는 어떻게 작동합니까? (0) | 2019.07.11 |
---|---|
[HADOOP] 하이브에 임시 테이블을 만드시겠습니까? (0) | 2019.07.11 |
[HADOOP] MapReduce (보조) 정렬 / 필터링 - 어떻게? (0) | 2019.07.11 |
[HADOOP] reudcer 클래스에서 전역 변수 사용 (0) | 2019.07.11 |
[HADOOP] 매퍼 클래스를 찾을 수 없음 (0) | 2019.07.11 |