빅데이터(BigData)/Spark

pyspark에서 비어있는 DataFrame 만들기

leebaro 2021. 4. 28.
728x90

loop를 돌면서 DF된 새로운 데이터를 만들고 모든 데이터를 합치려고 할 때 loop 안에서 변수를 정의하면, 기존에 변수에 저장된 데이터가 없어진다.

 

이런 경우 전역변수를 만들어서 해결해야 한다.

 

그렇게 하기 위해서는 비어있는 Dataframe을 만들어야하는데 번거로운 작업일 수 있다.

 

그래서 필자는 아래와 같이 진행했다.

  1. 비어있는 문자열 변수 A를 정의한다.
  2. for문에서 Dataframe 타입의 변수 B에 새로운 데이터를 삽입한다.
  3. A 변수가 문자열 타입이면 첫 번째 반복이므로 변수 B를 삽입한다.
  4. A 변수가 DF 타입이면, 두 번째 이후의 반복이므로 unionAll을 이용해서 데이터를 추가한다.

 

from pyspark.sql import DataFrame
df_all = ''

for _ in range(0,3):
	
    # 새로운 데이터 만들기
    	.....
        df = .....
        .....
    # 첫 번째 루프면 df를 바로 삽입하고, 아니면 union으로 데이터를 합한다.    
	if type(df_all) == DataFrame:        
    	df_all = df_all.unionAll(df)
    else:
    	df_all = df
728x90