Thuật toán: Đếm số từ xuất hiện trong chuỗi¶
🟡 Trung bình · Thuật toán
Cách tiếp cận (tư duy MapReduce)¶
- Đánh giá kích thước: Chuỗi nhỏ → xử lý trực tiếp. Lớn (GB) → split.
- Split: Tách thành phần nhỏ, chạy song song.
- Map: Mỗi phần, tách từ và đếm →
{từ: số lần}. - Reduce: Ghép kết quả (cộng số lần cùng từ).
Python đơn giản¶
from collections import Counter
text = "hello world hello data world data data"
result = Counter(text.split())
# {'data': 3, 'hello': 2, 'world': 2}
Spark (dữ liệu lớn)¶
rdd = sc.textFile("hdfs://data.txt")
counts = rdd.flatMap(lambda x: x.split()) \
.map(lambda w: (w, 1)) \
.reduceByKey(lambda a, b: a + b)
💡 Tip¶
Phỏng vấn muốn thấy tư duy chia nhỏ bài toán, xử lý song song — đúng tinh thần MapReduce/Spark.