Spark RDD 多文件输入
1.将多个文本文件读入一个RDD中
SparkConf conf=new SparkConf()
.setMaster("local")
.setAppName("save");
JavaSparkContext sc=new JavaSparkContext(conf); JavaRDD<String> lines=sc.textFile("student*");
lines.foreach(new VoidFunction<String>(){ @Override
public void call(String arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println(args); } }); }
textFile的参数可以支持通配符哦!!!很强大吧。事实上,这个东西确实很强大:
public RDD<java.lang.String> textFile(java.lang.String path,
int minPartitions)
Read a text file from HDFS, a local file system (available on all nodes), or any Hadoop-supported file system URI, and return it as an RDD of Strings.
他可以从hdfs中读取数据,可以从本地文件系统读取数据(之不多此时要求所有节点都要有这个文件),或者任何hadoop支持的文件系统。
2.将一个RDD保存到文件中。
SparkConf conf=new SparkConf()
.setMaster("local")
.setAppName("save");
JavaSparkContext sc=new JavaSparkContext(conf); JavaRDD<String> lines=sc.textFile("student*");
//保存到hdfs
lines.saveAsTextFile("hdfs://spark2:9000/francis/spark-core/studentsRDD.txt");
ok,让我们查看一下hdfs上的文件吧:
hadoop fs -ls -h /francis/spark-core/studentsRDD.txt/
内容如下:
Found 4 items
-rw-r--r-- 3 francis supergroup 0 2016-03-10 18:58 /francis/spark-core/studentsRDD.txt/_SUCCESS
-rw-r--r-- 3 francis supergroup 38 2016-03-10 18:58 /francis/spark-core/studentsRDD.txt/part-00000
-rw-r--r-- 3 francis supergroup 38 2016-03-10 18:58 /francis/spark-core/studentsRDD.txt/part-00001
-rw-r--r-- 3 francis supergroup 38 2016-03-10 18:58 /francis/spark-core/studentsRDD.txt/part-00002
可以发现,每一个partition保存到一个文件中去了。
注意:在windows eclipse中调用saveAsTextFile时,如果将数据保存到window本地文件,会出现错误!!!!!
想要测试这种情况,还是去linux吧。
调用saveAsTextFile将数据保存到外部文件系统中了,那么如何在将他们到RDD中呢?只需要调用textFile并传入当时保存的那个文件名就ok了。
3.将RDD保存到一个文件中
上面看到了,每一个partition会被保存到要给单独的文件中去。如何让所有partition都保存到一个文件中呢?可以考虑如下两种思路:
第一种方法,对rdd调用collect(),此时返回的是要给array,然后将array保存到文件中。
第二张方法,并不推荐,他可能会极大的降低性能:先调用coalesce(1),然后再saveAsTextFile。
是否真的需要保存到一个文件中?这个需要仔细商榷,如果数据量比较大,保存到一个文件的性能会大大降低。
作者:FrancisWang
邮箱:franciswbs@163.com
出处:http://www.cnblogs.com/francisYoung/
本文地址:http://www.cnblogs.com/francisYoung/p/5263179.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Spark RDD 多文件输入的更多相关文章
- Spark RDD/Core 编程 API入门系列之动手实战和调试Spark文件操作、动手实战操作搜狗日志文件、搜狗日志文件深入实战(二)
		1.动手实战和调试Spark文件操作 这里,我以指定executor-memory参数的方式,启动spark-shell. 启动hadoop集群 spark@SparkSingleNode:/usr/ ... 
- Spark RDD API详解(一) Map和Reduce
		RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD.从编程的角度来看,RDD可以简单看成是一个数组.和普通数组的区别是,RDD中的数据是分区存储的,这样不同 ... 
- Spark RDD Operations(1)
		以上是对应的RDD的各中操作,相对于MaoReduce只有map.reduce两种操作,Spark针对RDD的操作则比较多 ************************************** ... 
- Spark RDD操作(1)
		https://www.zybuluo.com/jewes/note/35032 RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD.从编程的角度来看,RD ... 
- Spark RDD API具体解释(一) Map和Reduce
		本文由cmd markdown编辑.原始链接:https://www.zybuluo.com/jewes/note/35032 RDD是什么? RDD是Spark中的抽象数据结构类型,不论什么数据在S ... 
- Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)论文 | ApacheCN
		Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ... 
- Apache Spark RDD(Resilient Distributed Datasets)论文
		Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ... 
- Spark RDD 操作
		1. Spark RDD 创建操作 1.1 数据集合 parallelize 可以创建一个能够并行操作的RDD.其函数定义如下: ) scala> sc.defaultParallelism ... 
- Spark RDD、DataFrame原理及操作详解
		RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD内部可以 ... 
随机推荐
- Npoi导入导出Excel操作
			之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ... 
- 浏览器内核控制Meta标签说明文档
			浏览器内核控制Meta标签说明文档 原文链接 背景介绍 由于众所周知的情况,国内的主流浏览器都是双核浏览器:基于Webkit内核用于常用网站的高速浏览.基于IE的内核用于兼容网银.旧版网站.以360的 ... 
- 浅析Java中的final关键字
			浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ... 
- 【荐】怎么用PHP发送HTTP请求(POST请求、GET请求)?
			file_get_contents版本: <?php /** * 发送post请求 * @param string $url 请求地址 * @param array $post_data pos ... 
- 配置php.ini实现PHP文件上传功能
			本文介绍了如何配置php.ini实现PHP文件上传功能.其中涉及到php.ini配置文件中的upload_tmp_dir.upload_max_filesize.post_max_size等选项,这些 ... 
- Scrum Meeting ——总结
			冲刺总结 0*.燃尽图 迟来的燃尽图,别看它是最后一天掉了一堆,感觉很假,像是人为的把issues都关闭掉.其实不然,很多功能是大家平时做好,但是没整合在一起,所以没燃掉,在最后几天的整合中,通过测试 ... 
- C和指针 第十二章 使用结构和指针
			链表是一种常用的数据结构,每个节点通过链或者指针链接在一起,程序通过间接指针访问链表中的节点. typedef struct Node { //指向下一个节点的指针 struct Node *next ... 
- poj 1192
			此题亦一眼看出算法,一次AC. 没什么好讲的,就是一个普通的树形动规. 用dp[n][0]表示n号顶点不取时的最大值,dp[n][1]表示n号顶点取时的最大值. dp[n][0]=max{dp[x][ ... 
- 在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?
			今天在做 COS脚本解释器的时候,遇到了这个问题 先了解一下 LPCTCHAR 这个东东 LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么 ... 
- win8 app内存溢出检测工具PerfView.exe的使用
			PerfView使用教程:https://msdn.microsoft.com/en-us/magazine/jj721593.aspx PerfView下载地址:https://www.micros ... 
