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

【Spark】简单入门——HelloWorld

环境IntelliJIDEA+Maven+Spark_2.1.1JDK_1.8.0_131Scala_2.11.0语言JavaScala目的读取README.md文件并显示文件内容

环境

  • IntelliJ IDEA + Maven + Spark_2.1.1
  • JDK_1.8.0_131
  • Scala_2.11.0

语言

  • Java
  • Scala

目的

  • 读取README.md文件并显示文件内容

过程

  • 新建工程: File->New Project,选择Maven

《【Spark】简单入门——HelloWorld》 New Project 1

  • Next进入下一步
  • 输入GroupIdArtifactId

《【Spark】简单入门——HelloWorld》 New Project 2

  • Next进入下一步

《【Spark】简单入门——HelloWorld》 New Project 3

  • Finish
  • 新建的工程结构如下

《【Spark】简单入门——HelloWorld》 Project Structure

  • 其中pom.xml里面需要添加我们的maven仓库
  • spark依赖的代码如下:


org.apache.spark
spark-core_2.11
2.1.1

  • 修改后的pom.xml内容如下


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">
4.0.0
com.helloworld
HelloWorld
1.0-SNAPSHOT


org.apache.spark
spark-core_2.11
2.1.1



  • 右键pom.xml文件,选择Maven->Reimport,开始下载依赖
  • 下载依赖的时间可能会很长_(:з」∠)_
  • 新建README.md文件,我的文件放在工程目录HelloWorld里,文件内容如下:

《【Spark】简单入门——HelloWorld》 READEME.md

  • 下面正式开始啦=v=

Java版本的HelloWorld

  • 右键点击src/main/java目录,选择New->Java Class

《【Spark】简单入门——HelloWorld》 New Class 1

  • 输入类名

《【Spark】简单入门——HelloWorld》 New Class 2

  • OK
  • 在新建的HelloWorld.java里添加如下代码

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.VoidFunction;
public class HelloWorld {
public static void main(String[] args) {
SparkConf cOnf= new SparkConf().setAppName("HelloWorld").setMaster("local").setSparkHome("/usr/lib/spark/spark-2.1.1-bin-hadoop2.7");
// setMaster指定Master
// setSparkHome指向安装spark的地址,视环境而定
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD data = sc.textFile("README.md");
// 加载README.md文件并创建RDD
data.foreach(new VoidFunction() {
public void call(String s) throws Exception {
System.out.println(s);
}
});
// 输出RDD中的每个分区的内容
}
}

  • 输出结果

《【Spark】简单入门——HelloWorld》 Output

Scala版本的HelloWorld

  • 先要下载Scala,已经下载的可以忽略这个部分
  • 点击File->Setting,找到Plugins,在右边搜索Scala

《【Spark】简单入门——HelloWorld》 Install Scala

  • 上面是已经安装完成的情况,要是没有安装的话应该会显示:

《【Spark】简单入门——HelloWorld》 Uninstall

  • 点击Search in repositories,找到Scala,然后点击Install就可以了
  • 安装完Scala后,进入下面的步骤
  • 点击File->Project Structure

《【Spark】简单入门——HelloWorld》 Add Scala SDK

  • 选择Libraries,点击左上角的+,选择Scala SDK

《【Spark】简单入门——HelloWorld》 Choose Scala

  • 一直点OK就可以了
  • 删除src/main/java目录,然后添加新目录scala,完成后工程结构如下

《【Spark】简单入门——HelloWorld》 Project Structure

  • 右键scala,点击Mark Directory as -> Sources Rootscala会变蓝色
  • 右键scala,选择New -> Scala Class
  • 输入类名,并注意选择KindObject

《【Spark】简单入门——HelloWorld》 New Scala Class

  • 在新建的HelloWorld.scala里添加如下代码

import org.apache.spark.{SparkConf, SparkContext}
object HelloWorld {
def main(args: Array[String]): Unit = {
val cOnf= new SparkConf().setAppName("HelloWorld").setMaster("local").setSparkHome("/usr/lib/spark/spark-2.1.1-bin-hadoop2.7");
val sc = new SparkContext(conf)
// setMaster指定Master
// setSparkHome指向安装spark的地址,视环境而定
val data = sc.textFile("README.md")
// 加载README.md文件并创建RDD
data.foreach(println)
// 输出RDD中的每个分区的内容
}
}

  • 输出结果

《【Spark】简单入门——HelloWorld》 Output

  • 成功啦( ̄︶ ̄)
  • 感觉自己罗里吧嗦的(/ω\)

推荐阅读
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
author-avatar
mobiledu2502919967
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有