Dữ liệu về chiến tranh Việt Nam ở đường link: https://drive.google.com/drive/folders/1vJHhgMdcE9MyIBJw149E4oQX7tCnL05m Dữ liệu gồm 2 files: Bombing_Operations .json.gz Aircraft_Glossary.json.gz Mô tả chi tiết về dữ liệu gồm có các thông tin sau: File Bombing_Operations.json.gz • AirCraft: Aircraft model • ContryFlyingMission: Country • MissionDate: Date of the mission • OperationSupported: Supported War operation • PeriodOfDay: Day or night • TakeoffLocation: Take off airport • TimeOnTarget • WeaponType • WeaponsLoadedWeight File Aircraft_Glossary.json.gz • AirCraft: Aircraft model • AirCraftName • AirCraftType Hãy sử dụng PySpark giải quyết các câu hỏi sau: 2.1- Những quốc gia nào tham gia và thực hiện bao nhiêu phi vụ trong cuộc chiến? 2.2- Hiển thị số lượng phi vụ theo thời gian cho mỗi quốc gia liên quan? 2.3- Ai đã đánh bom địa điểm này? Bức ảnh này là một cơ sở ở Hanoi POL (Miền Bắc Việt Nam) đang bốc cháy sau khi bị Không quân Hoa Kỳ tấn công vào ngày 29 tháng 6 năm 1966 trong bối cảnh chiến dịch Rolling Thunder. 2.4- Hãy cho biết loại máy bay được sử dụng nhiều nhất trong chiến tranh Việt Nam (loại máy bay thực hiện số lượng phi vụ nhiều nhất) là gì?
Trước tiên, để giải quyết những câu hỏi này bằng PySpark, bạn cần phải có một không gian làm việc PySpark được thiết lập, có các file dữ liệu này đã được tải xuống, và PySpark đã được cài đặt và cấu hình phù hợp. Đây là một nhiệm vụ rất "nặng ký" mà chỉ có những dấu chân đầu tiên trên con đường AI mới cần làm. Nhưng đừng lo, trituenhantao.io sẽ không bỏ bạn lại phía sau trên hành trình khám phá biển lớn dữ liệu này!
Bây giờ, hãy đặt mũ bảo hiểm dữ liệu của bạn lên, và chúng ta sẽ tựa như những nhà khảo cổ học kỹ thuật số, mổ xẻ từng tập dữ liệu với sự giúp sức của PySpark.
Lưu ý: PySpark đôi khi có thể bảo thủ với cú pháp (syntax) của mình, như một giáo sư già nua trong thế giới của mã lập trình, nên hãy chắc chắn rằng bạn mặc đúng trang phục lập trình (đầu óc sắc bén và cảm giác hài hước, ồ không, mình đã hứa là không dùng từ đó rồi nhỉ?).
2.1- Để tìm hiểu những quốc gia tham gia và thực hiện bao nhiêu phi vụ:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
# Khởi tạo phiên Spark
spark = SparkSession.builder.appName("VietnamWarAnalysis").getOrCreate()
# Load dữ liệu từ file JSON đã được giải nén
df_bombing = spark.read.json("path_to_extracted_Bombing_Operations.json")
# Đếm số phi vụ của mỗi quốc gia
missions_by_country = df_bombing.groupBy("ContryFlyingMission").count()
missions_by_country.show()
2.2- Để hiển thị số lượng phi vụ theo thời gian cho mỗi quốc gia:
from pyspark.sql.functions import to_date
# Chuyển đổi chuỗi ngày tháng thành đối tượng ngày tháng
df_bombing = df_bombing.withColumn("MissionDate", to_date(col("MissionDate"), "dd/MM/yyyy"))
# Đếm và hiển thị số phi vụ theo thời gian và quốc gia
missions_by_country_and_time = df_bombing.groupBy("ContryFlyingMission", "MissionDate").count().orderBy("ContryFlyingMission", "MissionDate")
missions_by_country_and_time.show()
2.3- Để tìm ai đã đánh bom Hanoi POL vào ngày đó:
# Lọc ra các phi vụ ở Hanoi POL và vào ngày 29/6/1966
hanoi_pol_missions = df_bombing.filter(
(col("TakeoffLocation") == "Hanoi POL") & \
(col("MissionDate") == to_date(lit("29/06/1966"), "dd/MM/yyyy"))
)
# Hiển thị kết quả
hanoi_pol_missions.show()
2.4- Để tìm loại máy bay được sử dụng nhiều nhất:
# Nhóm theo loại máy bay và đếm số phi vụ
most_used_aircraft = df_bombing.groupBy("AirCraft").count().orderBy(col("count").desc())
# Hiển thị loại máy bay được sử dụng nhiều nhất
most_used_aircraft.show(1)
Sau khi bạn đã hoàn thành nhiệm vụ khám phá dữ liệu, tại sao không bay qua trituenhantao.io để cập nhật thêm kiến thức hay tiếp tục tu luyện với những dự án mới? Chúng tôi chắc chắn sẽ không khiến bạn phải nhảy dù khỏi máy bay tự hào về kiến thức của mình đâu!