一、创建RDD

二、并行化集合创建RDD

2.1 Java并行创建RDD——计算1-10的累加和

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.Function2; import java.util.Arrays;
import java.util.List; /**
* 并行创建RDD
* eg:计算1-10的累加和
*/
public class JavaParallelizeCollection {
public static void main(String[] args) {
//创建SparkConf
SparkConf conf = new SparkConf()
.setAppName("JavaParallelizeCollection")
.setMaster("local"); //创建JavaSparkContext
JavaSparkContext sc = new JavaSparkContext(conf); //要通过并行化集合的方式创建RDD,那么就调用SparkContext以及其子类的parallelize()方法
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
JavaRDD<Integer> integerJavaRDD = sc.parallelize(numbers); //执行reduce算子操作
//相当于,先进行1+2=3;然后在用3+3=6,然后在用6+4=10,以此类推
int sum = integerJavaRDD.reduce(new Function2<Integer, Integer, Integer>() { private static final long serialVersionUID = 1L; @Override
public Integer call(Integer num1, Integer num2) throws Exception {
return num1 + num2;
}
}); //输出累加和
System.out.println("1到10的累加和为:" + sum); //关闭JavaSparkContext
sc.close(); }
}

2.2 Scala并行创建RDD——计算1-10的累加和

import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext; object ScalaParallelizeCollection {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setAppName("JavaParallelizeCollection")
.setMaster("local") val sc = new SparkContext(conf) val numbers = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val numberRDD = sc.parallelize(numbers, 5) val sum = numberRDD.reduce(_ + _) println("1到10的累加和:" + sum) }
}

三、使用本地文件和HDFS创建RDD

3.1 Java—使用本地文件创建RDD


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.Function;
import org.apache.spark.api.java.function.Function2; /**
* 使用本地文件创建RDD
* eg:统计文本文件字数
*/
public class LocalFile {
public static void main(String[] args) {
//创建SparkConf
SparkConf conf = new SparkConf()
.setAppName("LocalFile")
.setMaster("local"); //创建JavaSparkContext
JavaSparkContext sc = new JavaSparkContext(conf); //使用SparkContext以及其子类的textFile()方法,针对本地文件创建RDD
JavaRDD<String> lines = sc.textFile("C://Users//xxx//Desktop//spark.txt"); //统计文本文件内的字数
JavaRDD<Integer> lineLength = lines.map(new Function<String, Integer>() {
private static final long servialVersionUID = 1L; @Override
public Integer call(String s) throws Exception {
return s.length();
}
}); int count = lineLength.reduce(new Function2<Integer, Integer, Integer>() {
private static final long servialVersionUID = 1L; @Override
public Integer call(Integer v1, Integer v2) throws Exception {
return v1 + v2;
}
}); System.out.println("文件总字数是:" + count); //关闭JavaSparkContext
sc.close(); } }

3.2 Scala—使用本地文件创建RDD


import org.apache.spark.{SparkConf, SparkContext} /**
* 使用本地文件创建RDD
* eg:统计文本文件字数
*/
object ScalaLocalFile { def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setAppName("ScalaLocalFile")
.setMaster("local") val sc = new SparkContext(conf) val lines = sc.textFile("C://Users//xxx//Desktop//spark.txt", 1) val count = lines.map { line => line.length() }.reduce(_ + _) println("统计文本文件字数:" + count)
} }

四、RDD持久化原理

五、不使用RDD持久化的问题的原理

六、RDD持久化工作的原理

七、RDD持久化策略

八、如何选择RDD持久化策略

Spark练习之创建RDD(集合、本地文件),RDD持久化及RDD持久化策略的更多相关文章

  1. 5、创建RDD(集合、本地文件、HDFS文件)

    一.创建RDD 1.创建RDD 进行Spark核心编程时,首先要做的第一件事,就是创建一个初始的RDD.该RDD中,通常就代表和包含了Spark应用程序的输入源数据.然后在创建了初始的RDD之后,才可 ...

  2. Spark保存到HDFS或本地文件相关问题

    spark中saveAsTextFile如何最终生成一个文件 http://www.lxway.com/641062624.htm 一般而言,saveAsTextFile会按照执行task的多少生成多 ...

  3. 26.Spark创建RDD集合

    打开eclipse创建maven项目 pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...

  4. spark读取本地文件

    /** * Read a text file from HDFS, a local file system (available on all nodes), or any * Hadoop-supp ...

  5. JS读取/创建本地文件及目录文件夹的方法

    原文链接:http://www.cnblogs.com/ayan/archive/2013/04/22/3036072.html 注:以下操作只在IE下有效! Javascript是网页制作中离不开的 ...

  6. 手工创建tomcat应用,以及实现js读取本地文件内容

    手工创建tomcat应用: 1.在webapps下面新建应用目录文件夹 2.在文件夹下创建或是从其他应用中复制:META-INF,WEB-INF这两个文件夹, 其中META-INF清空里面,WEB-I ...

  7. 使用Docker Toolbox 创建Docker虚拟机的方法-注意正确使用本地文件 file:参数的路径名

    使用Docker Toolbox 创建v1.12.6版的Docker虚拟机的方法, 一定要注意正确使用本地文件 file:// 参数的路径名, 之前尝试创建过多次,一直都没有成功过, 无法使用 fil ...

  8. github 创建网络仓库 ,使用git工具将本地文件上传/删除 --- 心得

    1.前言 使用  git做项目控制版本工具,当然,使用SVN也可以,但是,git让人感觉更先进一些,与GitHub结合,用起来很方便,服务端由官网控制. 而SVN分客户端和服务端,都是个人控制,因此, ...

  9. github创建项目,并提交本地文件

    1.如图所示,不要点选"Initialize this repository with README",不然就看不到第二幅图的提示信息了 2.根据下面提示,初始化本地文件,然后上传

随机推荐

  1. Netty源码解析 -- 对象池Recycler实现原理

    由于在Java中创建一个实例的消耗不小,很多框架为了提高性能都使用对象池,Netty也不例外. 本文主要分析Netty对象池Recycler的实现原理. 源码分析基于Netty 4.1.52 缓存对象 ...

  2. 2021超详细的HashMap原理分析,面试官就喜欢问这个!

    一.散列表结构 散列表结构就是数组+链表的结构 二.什么是哈希? Hash也称散列.哈希,对应的英文单词Hash,基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出 这个映射的规则就是对 ...

  3. 【十天自制软渲染器】DAY 01:图形学学习建议与环境搭建

    推荐直接阅读博客原文,更新更及时,阅读体验更佳 「十天自制软渲染器」这个标题我承认标题党了.在对图形学一无所知的情况下想十天自制一个软渲染器,就好似一节课没上过却试图一个晚上看完<30 天精通 ...

  4. SpringCloud Alibaba Nacos服务注册与配置管理

    Nacos SpringCloud Alibaba Nacos是一个狗抑郁构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos:Dynamic Naming and Configurat ...

  5. Java基础概念性问题整理,面试题型整理,附带答案详解供参考,首次整理!

    题目目录 Java基础 1.JDK1.8新特性? 2.面向对象和面向过程的区别? 3.什么是值传递和引用传递? 4.什么是不可变对象? 5.讲讲类的实例化顺序? 6.java 创建对象的几种方式 7. ...

  6. vim 手动添加脚本头部信息

    vim /root/.vimrc 8,1 全部 set autoindent set tabstop=5 set shiftwidth=4 function AddTitle() call setli ...

  7. pyi文件是干嘛的?(一文读懂Python的存根文件和类型检查)

    参考资料: https://blog.csdn.net/weixin_40908748/article/details/106252884 https://www.python.org/dev/pep ...

  8. 【Spring Boot】创建一个简单的Spring Boot的 Demo

    走进Spring Boot 文章目录 走进Spring Boot 环境搭建 新建Spring Boot项目 开始创建项目 配置JDK版本 和 Initializr Service URL 配置Proj ...

  9. Azure App object和Service Principal

    为了把Identity(身份)和Access Management function(访问管理功能)委派给Azure AD,必须向Azure AD tenant注册应用程序.使用Azure AD注册应 ...

  10. 【MySql】[ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'

    [root@zhang bin]# ./mysql_install_db --datadir=/usr/local/mysql/mydata/data/ 2018-08-18 03:09:14 [WA ...