- Apache Spark 2.x for Java Developers
- Sourav Gulati Sumit Kumar
- 224字
- 2021-07-02 19:02:01
Counting the number of words in a file
Let's read the file people.txt placed in $SPARK_HOME/examples/src/main/resources:

scala>val file=sc.textFile("/usr/local/spark/examples/src/main/resources/people.txt")
file: org.apache.spark.rdd.RDD[String] = /usr/local/spark/examples/src/main/resources/people.txt MapPartitionsRDD[1] at textFile at <console>:24
The next step is to flatten the contents of the file, that is, we will create an RDD by splitting each line with , and flatten all the words in the list, as follows:
scala>valflattenFile = file.flatMap(s =>s.split(", "))
flattenFile: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[5] at flatMap at <console>:26
The contents of flattenFile RDD looks as follows:
scala>flattenFile.collect
res5: Array[String] = Array(Michael, 29, Andy, 30, Justin, 19)
Now, we can count all the words in this RDD as follows:
scala>val count = flattenFile.count
count: Long = 6
scala> count
res2: Long = 6
It is shown in the following screenshot:

Whenever any action such as count gets called, the Spark creates a directed acyclic graph (DAG) to depict the lineage dependency of each RDD. Spark provides a debug method toDebugString() to show such lineage dependencies of the RDD:
scala>flattenFile.toDebugString
It is shown in the following screenshot:

The indentations represent the shuffle while the number in the parentheses indicates the parallelism level at each stage.
In this section, we became familiar with some Spark CLI concepts. In the next section, we will discuss various components of Spark job.
- Interactive Data Visualization with Python
- 深入淺出Prometheus:原理、應用、源碼與拓展詳解
- 名師講壇:Java微服務架構實戰(SpringBoot+SpringCloud+Docker+RabbitMQ)
- Mastering macOS Programming
- 大學計算機基礎(第2版)(微課版)
- 零基礎學Python數據分析(升級版)
- RabbitMQ Cookbook
- Express Web Application Development
- Tableau 10 Bootcamp
- Unity 2018 Augmented Reality Projects
- Vue.js 3應用開發與核心源碼解析
- 一步一步跟我學Scratch3.0案例
- C指針原理揭秘:基于底層實現機制
- Android Game Programming by Example
- Selenium WebDriver Practical Guide