马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
开始本次教程之前确保你已配置好了java环境,安装的JDK版本为JDK8及以上。
本次教程用到的Scala版本为2.12.18,版本,IDEA版本为2019.2.3版本(所以Maven版本最好选择3.6.1以下的版本,这里用的是3.5.4),Spark为3.4.1版本。
常用的IDEA版本与Maven版本的兼容对照如下:
1.IDEA 2024 兼容maven 3.9.6及之前的所用版本
2.IDEA 2023 兼容maven 3.9.5及之前的所用版本
3.IDEA 2022 兼容maven 3.8.5及之前的所用版本
4.IDEA 2021 兼容maven 3.8.1及之前的所用版本
5.IDEA 2020 兼容Maven 3.6.3及之前全部版本
6.IDEA 2018 兼容Maven3.6.1及之前全部版本
我个人比较保举使用3.5.4或者3.6.3版本,这两个版本都是我常用的两个版本且对大多数的IDEA版本都有很好的兼容性。
想要相识Scala版本与Spark版本是否兼容,JDK版本与Maven版本是否兼容等问题可以去看我往期的文章http://【教你看scala版本和spark版本是否兼容,以及需要下载的Maven包与JDK版本之间是否兼容,如安在pom.xml中写相关组件的配置等,用作IDEA中spark项目开发,并用Maven管理相关依靠 - CSDN App】https://blog.csdn.net/weizhigongzi/article/details/145283519?sharetype=blog&shareId=145283519&sharerefer=APP&sharesource=weizhigongzi&sharefrom=link
首先我们需要安装Scala和IDEA中的Scala插件,请根据下面这篇我往期的文章完成上面两步:http://【用IDEA开发基于Spark3.4.1和Scala2.12.18的Spark项目的sbt方式配置,超具体哦 - CSDN App】https://blog.csdn.net/weizhigongzi/article/details/144381627?sharetype=blog&shareId=144381627&sharerefer=APP&sharesource=weizhigongzi&sharefrom=link
教程中用到的Scala版本为2.12.18版本,需要的Spark版本为3.4.1版本 。
完成上面的步调后,打开下面的网址下载Maven安装包:
Download Apache Maven – Maven
进来以后我们下滑找到别的版本中的汗青版本点击进去
下滑可以看到3.9.x版本要求用JDK8及以上,3.8.x版本要求用JDK7及以上,Maven的版本除了需要思量是否与你的java版本兼容外,还需要看是否与你的IDEA版本兼容。
我们返回主页,然后点击Maven 3 archives字样
这里我们用Maven3.5.4版本,找到3.5.4版本点击
点击下载二进制文件
找到zip包下载
下载完成后将其解压出来,解压路径根据自己的实际情况选择,最好是解压后不要随便改变它的路径。
进到bin所在的同级目录下新建一个名为repository的文件夹,用于背面作本地堆栈
然后根据自己的解压路径进到conf文件夹下,找到里面的settings.xml文件
用记事本打开settings.xml文件, 再往下滑找到如图位置添加下面的内容,为啥要改呢?是由于下载依靠的时候默认从国外下载,特别慢,将其改为国内的阿里源
<mirror>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
修改后如下,留意不要把</mirrors>给删了
修改好后Ctrl+s保存退出,然后打开IDEA,新建项目
根据步调点击
按照下图根据自己的实际情况填完后点击Next
点击Next后出现如下界面,根据自己实际情况选择存放的位置,点击Finish
进来后初次构建完成后,点击右边的Maven
点击小扳手图标
如图,需要改三个位置,第一个为Maven的主目录,就是你解压的Maven安装包的路径,到bin文件夹的上一级路径,第二个是settings.xml文件的路径,刚才修改的谁人文件的路径,第三个是本地堆栈的路径,就是刚才创建的谁人repository文件夹的路径
根据自己的情况修改后如下,修改下面两个的时候要勾选背面的重写
将下面的依靠配置复制到框选位置
复制过去后点击右下角下载依靠并导入

我等了大概10分钟左右,依靠下载完了

接下来在项目名下的src文件夹下的main和test文件夹下都创建一个名为scala的文件夹

创建好了后可以看到是灰色的

我们将main文件夹下的scala目录设置为源文件的根目录

 将test文件夹下的scala设置为测试源文件的根目录


写项目代码在main下的scala目录下创建包,再在包里创建源文件,个人保举这种
 创建一个名为test的包,再在包下创建名为WordCount的scala项目,但是这里可以看到没有scala项目的创建选项

我们点击项目名,再点击打开模型设置

点击如图所示位置,再点击加号,再点击Scala SDK

点击浏览,根据自己的scala2.12.x版本的安装目录选择里面的lib目录点OK
 选中当前的项目名,点击OK

点击应用,再点击OK

再创建 scala项目就可以看到有scala的选项了

选中object双击object创建

在红框的地方添加如下单词计数代码
- def main(args: Array[String]): Unit = {
- Logger.getLogger("org").setLevel(Level.ERROR)
- //创建sparkcontext对象sc
- val conf: SparkConf = new SparkConf().setAppName("wordcount").setMaster("local[*]")
- val sc: SparkContext = new SparkContext(conf)
- //代码主体
- val inputfile = "C:\\Users\\changqin\\Desktop\\File.txt"
- val fRDD: RDD[String] = sc.textFile(inputfile, 1) //读取文件,文件会被分成 1 个分区。分区数可以影响并行度和性能,通常情况下,分区数应该与集群中的核心数或任务数相匹配。
- val wordlist: RDD[String] = fRDD.flatMap(_.split(" ")) //切分词
- val wordpair: RDD[(String, Int)] = wordlist.map(x => (x, 1)) //转换为元组 (key,value==1),(word,1)
- val result: RDD[(String, Int)] = wordpair.reduceByKey(_ + _) //reduceByKey((a,b)=>a+b)
- //按照value降序排序pairRDD
- //方法一:
- println("第一种方法的结果如下:")
- val result2: RDD[(String, Int)] = result.sortBy(_._2, ascending = false) //(key,value) _._2表示value,_._1表示key
- result2.foreach(println)
- //关闭sc对象
- sc.stop()
- }
复制代码
还需要导入相应的包
- import org.apache.log4j.{Level, Logger}
- import org.apache.spark.rdd.RDD
- import org.apache.spark.{SparkConf, SparkContext}
复制代码
右键点击运行
查看效果如下:
此中的
- C:\\Users\\changqin\\Desktop\\File.txt这里自己换一下,这里是我自己找的一段英文短文
复制代码
可以自己找,也可以用我这个
Life is too short to spend time with people who suck the happiness out of you. If someone wants you in their life, they’ll make room for you. You shouldn’t have to fight for a spot. Never, ever insist yourself to someone who continuously overlooks your worth. And remember, it’s not the people that stand by your side when you’re at your best, but the ones who stand beside you when you’re at your worst that are your true friends.
至此,教程完毕,创作不易,给个关注吧!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |