Bạn hãy tải tệp bài tập wikipedia.zip từ liên kết bạn đã cung cấp và giải nén nó. Sau đó, bạn có thể làm theo các bước sau để hoàn thành bài tập:
Chúng ta cần thiết lập một SparkContext để làm việc với Spark. Để làm điều này, chúng ta cần tạo một SparkConf và chỉ định rằng chúng ta sẽ chạy Spark ở chế độ local.
scala
CopyEdit
import org.apache.spark.{SparkConf, SparkContext}
val conf = new SparkConf()
.setAppName("Wikipedia Analysis")
.setMaster("local")
val sc = new SparkContext(conf)
Dữ liệu Wikipedia sẽ được đọc vào một RDD[WikipediaArticle]. Tệp WikipediaData.scala trong bài tập đã cung cấp một phương thức parse để chuyển đổi dữ liệu thô thành các đối tượng WikipediaArticle.
scala
CopyEdit
import org.apache.spark.rdd.RDD
val lines = sc.textFile("wikipedia-grading.dat")
val wikiRdd: RDD[WikipediaArticle] = lines.map(WikipediaData.parse)
Chúng ta sẽ triển khai phương thức occurrencesOfLang để đếm số lượng bài viết đề cập đến một ngôn ngữ lập trình ít nhất một lần.
scala
CopyEdit
def occurrencesOfLang(lang: String, rdd: RDD[WikipediaArticle]): Int = {
rdd.filter(article => article.text.split(" ").contains(lang)).count().toInt
}
Dùng occurrencesOfLang để xếp hạng danh sách các ngôn ngữ lập trình theo số bài viết đề cập đến chúng.
scala
CopyEdit
def rankLangs(langs: List[String], rdd: RDD[WikipediaArticle]): List[(String, Int)] = {
langs.map(lang => (lang, occurrencesOfLang(lang, rdd)))
.sortBy(-_._2)
}
Tạo một chỉ mục ánh xạ từ tên ngôn ngữ lập trình đến tập hợp các bài viết có nhắc đến nó.