Hadoop

Spark Dataframe Tips

PON_Z 2023. 3. 23. 14:54

1. pandas_df를 "spark_df = spark.createDataFrame(pandas_df)"를 사용해 spark_df로 변환할 때 만약 pandas_df에 date 타입이 있다면, timestamp 타입으로 오토캐스팅되므로 반드시 cast를 통해 컬럼을 다시 date 타입으로 바꿔줘야한다.

spark_df = spark_df.withColumn("date", col("date").cast(DateType()))

 

2. 만약 spark_df에 존재하는 "year" 컬럼을 기준으로 파티셔닝을 하여 hdfs에 저장하고 싶다면 해당 컬럼을 spark_df의 맨 마지막으로 보낸 뒤 partitionBy("year")를 하면 "year"를 기준으로 GROUP을 지어 파티셔닝이 되고 "year"컬럼을 제거한 형태로 write가 된다. 만약 "a" 컬럼을 제거하고싶지 않다면 마지막에 두지 않으면 된다.

spark_df.write.partitionBy("year").parquet(f"hdfs://path/")

# It shows like
# -- hdfs://path/2010
# -- hdfs://path/2011 
# -- hdfs://path/2012 ...

 

728x90

'Hadoop' 카테고리의 다른 글

Hadoop Ecosystem 정리 #2 (Spark)  (0) 2023.01.10
Apache Spark 환경 설정  (0) 2022.12.26
Hadoop Ecosystem 정리 #1  (0) 2022.12.20