IDEA 搭建 Spark 项目 [ 哔哔大数据 ]
大数据男孩 文章 正文
明妃
{{nature("2022-08-14 17:23:15")}}更新搭建前的准备
搭建 Scala 环境
首先需要你的IDEA
需要搭建好 Scala 的环境(可以参考这篇)
还需要一个和 Hadoop的 Windows版二进制文件
下载地址:http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
搭建
配置 winutils
创建一个目录
E:\winutils\bin
把winutils.exe
放进去
[]()
配置环境变量
// 新建变量
变量名:HADOOP_HOME
变量值:E:\winutils
// 把新建变量加入 Path
%HADOOP%\bin
这样就安装好了
[]()
配置 IDEA
在 IDEA 配置好 Scala 后,就只需要在 pom.xml
文件里添加 Spark 依赖就好
pom.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.bigdataboy</groupId>
<artifactId>SparkDemo</artifactId>
<version>1.0</version>
<dependencies>
<!--Spark 依赖-->
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</project>
等待依赖下载完成 []()
Spark 案例
第一个 Spark 案例,单词统计
统计数据
hello Scala
hello Java
hello Python
统计代码
def main(args: Array[String]): Unit = {
// 设定 Spark 运行环境
val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("wc")
// 创建 Spark 上下文连接对象
val sc = new SparkContext(conf)
// 读取文件,一行数据为一个元素
val lines: RDD[String] = sc.textFile("./src/main/Scala/data.txt")
// 空格分隔,使其扁平化
val words: RDD[String] = lines.flatMap(_.split(" "))
// 格式化数据,方便统计
val wordToOne: RDD[(String, Int)] = words.map((_, 1))
// 聚合
val wordToSum: RDD[(String, Int)] = wordToOne.reduceByKey(_ + _)
// 收集并打印结果
println(wordToSum.collect().mkString(","))
// 保存结果
wordToSum.saveAsTextFile("./src/main/Scala/out")
}
[]()
{{nature('2020-01-02 16:47:07')}} {{format('12641')}}人已阅读
{{nature('2019-12-11 20:43:10')}} {{format('9527')}}人已阅读
{{nature('2019-12-26 17:20:52')}} {{format('7573')}}人已阅读
{{nature('2019-12-26 16:03:55')}} {{format('5017')}}人已阅读
目录
标签云
一言
评论 0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}