Spark客户端使用(1) Scala SDK 开发 Spark 支持 Java/Scala/Python/R 语言进行应用开发。由于 Spark 本身主要由 Scala 语言开发,且 Scala 语言简洁易懂,推荐使用 Scala 语言开发。向工程 pom 文件添加依赖(版本与本集群一致,scala 为 2.12): plaintext 3.4.1 2.12 org.apache.spark sparkcore${scala.version} ${spark.version} org.apache.spark sparksql${scala.version} ${spark.version} org.apache.spark sparkhive${scala.version} ${spark.version} 注意 该处引用的Spark Jar包需要是天翼云提供的$SPARKHOME/jars下的Jar包 示例场景:有人员名单日志people.json,要求开发 Spark 应用实现筛选成年人(age > 18)与统计总人数。 people.json 为示例数据文件,集群中不存在现成文件,需自行创建:在本地开发机任一目录(如工程 resources 目录)新建文本文件,命名为 people.json,将下面代码块中的 4 行内容原样复制进去保存即可(JSON Lines 格式,每行一个 JSON 对象,UTF8 编码): plaintext {"name":"Alice", "age":10} {"name":"Jessica", "age":23} {"name":"Albert", "age":16} {"name":"Anna", "age":55} 本地调试时,将该文件放到工程src/main/resources/ 目录下(代码中读取路径 src/main/resources/people.json 即对应此位置);集群运行时按"集群运行完整步骤"上传到 HDFS。 新建object 文件 SparkSQLExample: plaintext package sparksqldemo import org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession object SparkSQLExample { case class Person(name: String, age: Long) def main(args: Array[String]): Unit { val sparkConf new SparkConf() val spark SparkSession .builder() .appName("Spark SQL basic example") .config(sparkConf) .getOrCreate() runExample(spark) spark.stop() } private def runExample(spark: SparkSession): Unit { val df spark.read.json("src/main/resources/people.json") df.show() import spark.implicits. df.filter($"age" > 18).show() // 筛选成年人 df.createOrReplaceTempView("people") spark.sql("SELECT count() FROM people").show() // 统计总人数 } } 集群运行完整步骤(从零开始): 1、将上文的 4 行人员数据保存为本地文件 people.json; 2、上传到 HDFS(用户目录下,命令会自动创建 /user/ /people.json): plaintext hdfs dfs put people.json /user/ /
来自: