热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spark词频统计–独立应用IntelliJIDEA

这次讲如何在IntelliJIDEA里启动Spark,需要安装Scala插件。版本说明Scala:2.12.8Spark:2.4(对应的Hadoop是2.7)用sbt编译scala

这次讲如何在IntelliJ IDEA里启动Spark,需要安装Scala插件。

版本说明

  • Scala: 2.12.8
  • Spark: 2.4 (对应的Hadoop是2.7)

用sbt编译scala,其中build.sbt文件核心配置如下(选择自动下载文件)

scalaVersion := "2.12.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.0"

SparkSession

通过spark-shell控制台进入spark时,系统会自动建立spark context。但是在代码里需要自己建立spark context。

先通过SparkSession的builder建立一个Session。

val session = SparkSession.builder()
.master("local")
.appName("WordCount")
.getOrCreate()

Spark Context

然后通过Session建立一个Spark Context

val sc: SparkCOntext= session.sparkContext

这个sc就和通过控制台进入后的sc一样了。之后的代码就是一样的。

完整代码

import org.apache.spark.SparkContext
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SparkSession._
object HelloWord {
def wordCountFromString(sc: SparkContext): Unit = {
val text = "hello world\nhello scala\nhello python"
val lines = text.split("\n")
val rdd = sc.parallelize(lines)
rdd.foreach(println)
val words = rdd.flatMap(_.split(" "))
val wordsWithCount = words.map(w => (w, 1))
val wordCounts = wordsWithCount.reduceByKey(_ + _)
wordCounts.foreach(println)
}
def main(args: Array[String]): Unit = {
val session = SparkSession.builder()
.master("local")
.appName("WordCount")
.getOrCreate()
val sc: SparkCOntext= session.sparkContext
wordCountFromString(sc)
sc.stop()
}
}


推荐阅读
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
author-avatar
拍友2602923913
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有