Just Fighting

[Spark] pandas dataframe를 hdfs에 저장하기 본문

Big Data

[Spark] pandas dataframe를 hdfs에 저장하기

yennle 2022. 3. 12. 19:57
728x90

hdfs에 저장된 데이터를 변환해서 다시 저장하고 싶었다.

데이터를 변환하는 방법도 여러가지 있지만, pandas를 이용해 데이터를 변환하고

그 데이터를 다시 hdfs에 넣는 방법을 작성하고자 한다.

 

먼저 데이터를 불러온다.

그 전에 pyspark 연결부터!

hdfs에서 데이터 가져왔었어도 됐는데, 내 컴퓨터에 저장된 데이터를 가져왔다^^;;

import findspark

findspark.init()
import pyspark
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
import pandas as pd

# 파일 불러오기
data = pd.read_csv('파일명')

 

 

 

내가 원하는 데이터가 될 수 있도록 열심히 변환해준 뒤에

다시 hdfs에 저장하고자 한다면 pandas dataframe을 spark dataframe으로 바꿔서 저장하면 된다.

show()를 이용해 데이터가 어떤 모습인지 확인 가능!

# hdfs에 저장하기

df = spark.createDataFrame(data)
df

 

 

 

이제 데이터를 저장해보자.

df.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").save("hdfs://localhost:19000/data/match_data_2.csv")

coalesce는 데이터를 저장하는 파티션의 수를 의미한다.(1이기 때문에 한 곳에 다 저장하겠다는 의미)

data 디렉터리 밑에 match_data_2.csv라는 이름으로 데이터가 저장된다.

 

 

 

데이터가 잘 저장되었는지 확인!

잘 저장되었다. 크기가 0으로 저장돼서 저장이 잘 안됐나 싶었지만

다시 데이터를 불러와보니 잘 떴다. 성공~!

728x90
Comments