-
write partitionByspark 2023. 2. 26. 19:19
partition 부분적으로 업데이트하기 위해 partitionOverwriteMode 를 dynamic 으로 설정함 (default: STATIC)
ds.write .mode(SaveMode.Overwrite) .option("partitionOverwriteMode", "dynamic") .partitionBy("queryset_id", "log_date", "time_grains") .parquet(basePath)
partition 마다 생성되는 파일 개수 조정을 위해서는 아래 링크 참고
위의 예제에서 partition 마다 1개의 파일이 생성되게 하려면
ds.repartition(col("queryset_id"), col("log_date"), col("time_grains")) .write .mode(SaveMode.Overwrite) .option("partitionOverwriteMode", "dynamic") .partitionBy("queryset_id", "log_date", "time_grains") .parquet(basePath)
partitionBy + bucketBy
df.repartition(col("queryset_id"), col("log_date")) .write .mode(SaveMode.Overwrite) .format("parquet") .option("partitionOverwriteMode", "dynamic") .option("path", basePath) .partitionBy("queryset_id", "log_date") .bucketBy(10, "refine_query") .sortBy("refine_query") .saveAsTable(tableName)
'spark' 카테고리의 다른 글
groupBy 후 collect_list 에 여러개의 column 값을 담기 (0) 2024.11.19 DataFrame 에 신규 칼럼 추가하기 (0) 2024.07.19 Spark Dataset joinWith bug? (0) 2022.02.26 Spark Broadcast 사용하기 (0) 2022.01.30 spark log level 조정하기 (0) 2022.01.30