ได้ยินเสียงลือเสียงเล่าอ้างมานาน เคยใช้มาบ้าง แต่อยากรู้ ว่า ถ้าต้องชนกันจริงๆ จะสะบักสะบอมกันขนาดไหน ก็เลยเป็นที่มาของการรังแก framework แล้วเอามาวัดผล
ขั้นตอน ก็คือ:
- แบ่งดาต้าเป็นช่วงๆ แต่ละช่วงมี 8 partitions เท่าๆ กัน
- ทำ datediff แล้วแปลงเป็น นาที
- หา percentile ของ datediff แล้วตัดเฉพาะ between 0.2, 0.8
- group by 2 columns
- agg กับ 3 columns, โดยมีทั้ง min, max, avg
และนี่ คือผลที่ได้:
จะเห็นได้ว่า น้องเป็ด เน่าไปตั้งแต่ 30M rows
polars ไวจริงไม่เถียง แต่ swap usage ก็วิ่งตามเป็นเงา
ส่วน spark เน้นมาราธอน ไม่รีบ แต่ก็ไม่กินที่ swap
ที่ฮามาก คือ spark runtime กับ polars swap usage มันไปทางเดียวกัน!
ใครแม่น stats น่าจะอธิบายได้ดีกว่ามนุด engineer อย่างเราๆ
มี repo อยู่นี่ เผื่ออยากไปลองกับดาต้าของตัวเอง