[HADOOP] 마루 파일을 복사하여 CSV로 변환하는 방법
HADOOP마루 파일을 복사하여 CSV로 변환하는 방법
hdfs 파일 시스템에 액세스 할 수 있으며
hadoop fs -ls /user/foo
이 쪽모이 세공 파일을 로컬 시스템에 복사하고이를 CSV로 변환하여 사용할 수 있습니까? 파일은 행당 여러 필드가있는 간단한 텍스트 파일이어야합니다.
해결법
-
==============================
1.시험
시험
var df = spark.read.parquet("/path/to/infile.parquet") df.write.csv("/path/to/outfile.csv")
관련 API 문서 :
/path/to/infile.parquet 및 /path/to/outfile.csv는 hdfs 파일 시스템의 위치에 있어야합니다. hdfs : // ...를 명시 적으로 지정하거나 일반적으로 기본 구성표 인 것처럼 생략 할 수 있습니다.
로컬 파일은 클러스터의 모든 시스템과 다른 파일을 의미하므로 file : // ...을 사용하지 않아야합니다. 대신 HDFS로 출력 한 다음 명령 행을 사용하여 결과를 로컬 디스크로 전송하십시오.
hdfs dfs -get /path/to/outfile.csv /path/to/localfile.csv
또는 HDFS에서 직접 표시하십시오.
hdfs dfs -cat /path/to/outfile.csv
-
==============================
2.Hive에 해당 마루 파일에 대해 정의 된 테이블이 있거나 그러한 테이블을 직접 정의한 경우 Hive 쿼리를 실행하고 결과를 CSV 파일로 저장할 수 있습니다. 다음 라인을 따라 무언가를 시도하십시오.
Hive에 해당 마루 파일에 대해 정의 된 테이블이 있거나 그러한 테이블을 직접 정의한 경우 Hive 쿼리를 실행하고 결과를 CSV 파일로 저장할 수 있습니다. 다음 라인을 따라 무언가를 시도하십시오.
insert overwrite local directory dirname row format delimited fields terminated by ',' select * from tablename;
dirname과 tablename을 실제 값으로 대체하십시오. 지정된 디렉토리의 기존 내용이 삭제됩니다. 자세한 내용은 쿼리에서 파일 시스템에 데이터 쓰기를 참조하십시오.
-
==============================
3.쪽모이 세공 파일 이름이 무엇인지 정확히 알지 못할 수 있으므로보다 동적 인 양식에 대한 스 니펫은 다음과 같습니다.
쪽모이 세공 파일 이름이 무엇인지 정확히 알지 못할 수 있으므로보다 동적 인 양식에 대한 스 니펫은 다음과 같습니다.
for filename in glob.glob("[location_of_parquet_file]/*.snappy.parquet"): print filename df = sqlContext.read.parquet(filename) df.write.csv("[destination]") print "csv generated"
from https://stackoverflow.com/questions/39419975/how-to-copy-and-convert-parquet-files-to-csv by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 입력 형식이 Hadoop의 MapReduce에서 데이터 로컬 리티 구현을 담당합니까? (0) | 2019.08.08 |
---|---|
[HADOOP] 하이브 gzip 파일 압축 해제 (0) | 2019.08.08 |
[HADOOP] saveAsNewAPIHadoopFile 메소드에서 작동하지 않는 hdfs에 대한 스파크 쓰기 (0) | 2019.08.08 |
[HADOOP] Cloudera 빠른 시작 도커에서 볼륨으로서의 HDFS (0) | 2019.08.08 |
[HADOOP] 레코드 리더 및 레코드 경계 (0) | 2019.08.07 |