본문 바로가기
Hadoop

subprocess 모듈 (feat. python)

by 집못가는프로그래머 2021. 9. 15.

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

댓글