내 HDFS
에 2 GB
데이터가 있습니다.몇 줄의 HDFS 데이터 가져 오기
데이터를 임의로 가져올 수 있습니까? 우리는 유닉스 명령 행에서와 같이
cat iris2.csv |head -n 50
내 HDFS
에 2 GB
데이터가 있습니다.몇 줄의 HDFS 데이터 가져 오기
데이터를 임의로 가져올 수 있습니까? 우리는 유닉스 명령 행에서와 같이
cat iris2.csv |head -n 50
기본 머리
여기에서 고양이가 머리이 모든 라인을 읽는대로 곧 스트림을 닫으므로hadoop fs -cat /your/file | head
이 여기에서 효율적입니다.
hadoop fs -tail /your/file
불행히도 그것은 데이터 라인의하지 주어진 수의 마지막 킬로바이트를 반환
는 하둡에 특별한 효과 명령이 꼬리를 얻으려면.나의 제안은 하이브 테이블에 데이터를로드하는 것입니다, 당신은 같은 것을 할 수 있습니다
SELECT column1, column2 FROM (
SELECT iris2.column1, iris2.column2, rand() AS r
FROM iris2
ORDER BY r
) t
LIMIT 50;
편집 : 이 간단 버전입니다 해당 쿼리의 :
SELECT iris2.column1, iris2.column2
FROM iris2
ORDER BY rand()
LIMIT 50;
쓰기 명령
sudo -u hdfs hdfs dfs -cat "path of csv file" |head -n 50
50 행수
head
및 Linux tail
명령은 제 10 및 마지막 10 표시 (이것은 요구 사항에 기초하여 상기 사용자에 의해 정의 될 수있다)이며 라인. 그러나이 두 명령의 출력은 무작위로 샘플링되는 것이 아니라 파일 자체와 동일한 순서로 표시됩니다. 이 경우 iris2.csv
을 경우에,
$ hadoop fs -cat <file_path_on_hdfs> | shuf -n <N>
따라서 : -
리눅스 셔플 shuf
명령은 우리가 명령과 같이, 도움이 될 것 하둡과 함께이를 사용하여 입력 라인 &의 임의 순열을 생성하는 데 도움이 HDFS의 파일이며, 당신은 무작위로 데이터 세트에서 샘플 50 선 원 :
$ hadoop fs -cat /file_path_on_hdfs/iris2.csv | shuf -n 50
참고 : Linux sort
명령을 사용할 수도 있지만 shuf
명령은 더 빠르고 더 무작위로 데이터를 샘플링합니다.
이것은 셔플에 대한 다른 답변이 없기 때문에 정답입니다. –
hdfs dfs -cat yourFile | shuf -n <number_of_line>
Mac OS에서는 사용할 수 없습니다. 설치된 GNU coreutils를 얻을 수 있습니다.
-n 2는 임의의 데이터를 제공하지 않습니다 ... 처음 2 줄을 반환합니다. – Jasper