collect_list() : 값들을 문자열로 모은다.
concat_ws() : 배열을 특정 구분자로 합친다. ( ws = with seperator)
collect_set() : 중복 값이 제거된 상태로 모은다.(집합처럼)
array_sort() : 배열 내부를 정렬한다.(default = asc)
reverse() : 배열 순서 뒤집기
array_remove() : 배열 내부 특정 값 제거
array_compact() : 배열 내 모든 Null 제거
array_distinct() : 배열 중 중복되는 값들 중 첫번째 값만 남긴다
from pyspark.sql import functions as F
df = tickets.withColumn("tags", F.array_remove(F.col("tags"), "misc"))
df = df.withColumn("tags", F.array_distinct(F.col("tags")))
df_result = df.withColumn("tag_count", F.size(F.col("tags"))) \
.filter(F.size(F.col("tags")) > 0) \
.sort(F.col("ticket_id").asc())
df_result = df.groupBy("category", "sub_category").agg( \
F.concat_ws(", ", F.array_sort(F.collect_set("amount"))).alias("amount") \
)