subprocess라는 모듈을 토해 리눅스 터미널 실행 명령어를 파이썬에서 실행시킬 수 있다.
예)
import subprocess
src_path = '/user/wan/part-00000*.csv'
dest_path = '/user/wan/ms_stock.csv'
subprocess.call(["hdfs", "dfs", "-cp", src_path, dest_path])
print('파일 복사 완료')
spark를 통해 저장된 파일은 park-0000으로 시작되는 매우 긴 이름을 가지게 된다.
나중에 그런 파일을 read() 할때 이름을 전부 적어주는 것은 매우 비효율적인 일이다.
subprocess를 활용해 그 이름을 간단하게 바꿔주고 작업을 할 수 있다.
src_path = 파일의 경로(예시는 part-00000*로 시작하는 csv파일)
dest_path = 바꿀 경로 or 이름
이렇게 변수를 만들지 않아도 되지만 만들면 수월하다.
subprocess.call()를 활용하여 터미널에서 사용될 문장을 넣어주면 문장이 실행된다.
-예시에서 작성한것을 터미널 버전으로 작성하면 'hdfs dfs -cp scr_path dest_path' 가 될 것이다.
-공백을 기준으로 하나씩 리스트에 넣어서 함수에 전달하고 함수는 터미널에서 실행한 것과 동일한 효과를 보여준다.-spark로 저장한 파일을 간단한 이름으로 바꾸어 관리하고 처리할 때 매우 용이하다
'Hadoop' 카테고리의 다른 글
RDD 가공/처리 함수 (0) | 2021.09.16 |
---|---|
RDD와 비정형데이터(feat. Spark) (0) | 2021.09.15 |
Arrow 모듈과 DataFrame(feat. Pandas, Spark) (0) | 2021.09.15 |
Pyspark 사용 예시(3) (0) | 2021.09.15 |
Pyspark 사용 예시(2) (0) | 2021.09.15 |
댓글