博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【spark】RDD创建
阅读量:4332 次
发布时间:2019-06-06

本文共 1741 字,大约阅读时间需要 5 分钟。

首先我们要建立 sparkconf 配置文件,然后通过配置文件来建立sparkcontext。

import org.apache.spark._object MyRdd {    def main(args:Array[String]): Unit ={        //初始化配置:设置主机名和程序主类的名字        val conf = new SparkConf().setMaster("local[*]").setAppName("MyRdd");        //通过conf来创建sparkcontext        val sc = new SparkContext(conf);          }}

然后我们通过 sparkcontext 来创建RDD

创建RDD的几种方式

1.基于程序中的集合创建RDD-作用:主要用于测试 

  通过 sc.parallelize(collection)方法来创建RDD

/*        * 从scala集合中创建RDD        * 计算:1+2+3+...+100        */        val nums = List(1,2,3,4,5);//集合        val rdd = sc.parallelize(nums);//创建rdd        val sum = rdd.reduce(_+_);        println(sum);

2.基于本地文件创建RDD-作用:大数据量的测试  

"file:///home/hadoop/spark-1.6.0-bin-hadoop2.6/examples/src/main/resources/people.json"

3.基于HDFS创建RDD-作用:生产环境最常用的RDD创建方式

"hdfs://112.74.21.122:9000/user/hive/warehouse/hive_test"

  通过sc.textFile(file)方法来读取文件

/*        * 从本地文件系统创建RDD        * 计算 people.json 文件中字符总长度        */        val rows = sc.textFile("file://")//文件地址或者HDFS文件路径        val length = rows.map(row=>row.length()).reduce(_+_)        println("total chars length:"+length)

  能读取文件,当然能保存文件,我们可以把通过 sc.saveAsTextFile("file://") 把 rdd 内容保存到文件中

  例如,我们保存把一个rdd保存到了/home/writeout.txt 

val rdd = sc.textFile("file:///home/word.txt");rdd.saveAsTextFile("file:///home/writeout.txt");//把rdd写入/home/writeout.txt

  但是我们打开/home文件夹,发现writeout并不是txt文件而是一个文件夹,我们打开文件夹,结构如下

       

  我们保存错了嘛?没有,这时正常的。part-00000代表的是分区,如果有多个分区,会有多个part-xxxxxx的文件。

  如果我们要再次读取这个保存的文件并不需要一个一个分区读取,直接读取就可以了,spark会自动加载所有分区数据。 

val rdd = sc.textFile("file:///home/writeout/part-00000");//我们并不用这样一个一个读取val rdd = sc.textFile("file:///home/writeout.txt");//直接这样读取,就会自动把所有分区数据加载到rdd中 

4.基于DB、NoSQL(例如HBase)、S3、基于数据流创建RDD

 

 

转载于:https://www.cnblogs.com/zzhangyuhang/p/8984312.html

你可能感兴趣的文章
JS获取第二个横杠后面的内容
查看>>
excel 导入MYSQL
查看>>
P3038 [USACO11DEC]牧草种植Grass Planting
查看>>
23 个最有吸引力和免费的Flash图像轮廓
查看>>
给label添加点击事件
查看>>
eterna 第一个案例
查看>>
新部署到服务器 报 The requested URL /home/profession was not found on this server. 错误
查看>>
hadoop从非HA转到NAMENODE HA时需要注意的一个问题
查看>>
KnockoutJs学习笔记(十一)
查看>>
访问修饰符public、private、protect、default范围
查看>>
jQuery实现布局高宽自适应
查看>>
《学习》10函数的建立与使用
查看>>
去除TB二合一页面弹窗
查看>>
托管和非托管的区别。
查看>>
win7与VMware ubuntu虚拟机实现文件共享(最后一定要装open-vm-dkms插件)
查看>>
Java 集合知识总结(三)
查看>>
文件类型解析漏洞防御与攻击(PHP)
查看>>
初步认识AutoMapper转载 https://www.cnblogs.com/fred-bao/p/5700776.html
查看>>
条件与循环
查看>>
nodejs unit test related----faker-cli, sinonjs, mock/stub
查看>>