spark中数据的读取与保存
1.文本文件
JavaRDD<String> input =sc.textFile(dir)
result.saveAsTextFile(dir);
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
final Gson gson=new Gson();
Person jack =new Person("jack",21);
String json=gson.toJson(jack);
System.out.println(json);
try {
Person someone=gson.fromJson(json,Person.class);
System.out.println("name if someone is"+someone.getName());
System.out.println("age of someone is"+someone.getAge());
} catch (JsonSyntaxException e) {
e.printStackTrace();
}
Person jack =new Person("jack",21);
String json = JSON.toJSONString(jack);
System.out.println(json);
Person someone=JSON.parseObject(json,Person.class);
public Person(){
}
//创建CSVWriter,文件路径为c://test.csv,分隔符为制表符
CSVWriter writer =new CSVWriter(new FileWriter("C://test.csv"),'\t');
//需要写入csv文件的一行的三个String
String [] line={"aaa","bbb","ccc"};
//写入这一行
writer.writeNext(line);
writer.close();
//创建CSVWriter,文件路径为c://test.csv,分隔符为制表符
CSVWriter writer =new CSVWriter(new FileWriter("C://test.csv"),'\t');
List<String[]> lines=new ArrayList<String[]>();
lines.add(new String []{"hhh","ggg","hhh"});
lines.add(new String[]{"xxx","yyy","zzz"});
writer.writeAll(lines);
writer.close();
//读取csv文件,以行为单位,保存在lines中
JavaRDD<String> lines = sc.textFile("C://test.csv");
//定义如何将一行中的元素读取出来,以String[]的形式返回
class ParseLine implements Function<String,String[]>{
public String[] call(String s) throws Exception {
//新建CSVReader对象,分隔符定为'\t'制表符
CSVReader reader =new CSVReader(new StringReader(s),'\t');
//以数组的形式返回每一行中的元素
return reader.readNext();
}
}
//利用ParseLine,转化处理lines
JavaRDD<String[]> results=lines.map(
new ParseLine()
);
//遍历输出results中的内容
for(String s []: results.collect() ){
System.out.println("this is the elements of one line!");
for(String str:s)
System.out.println(str);
}
//新建PairRDD<String,Integer>
JavaPairRDD<String,Integer> data =sc
.parallelizePairs(Arrays.asList(new Tuple2<String, Integer>("zhouyang", 1),
new Tuple2<String, Integer>("jack", 2),
new Tuple2<String, Integer>("bob", 3)));
//将PairRDD<String,Integer> 转换为hadoop io中对应的格式 PairRDD<Text,IntWritable>
JavaPairRDD<Text,IntWritable> result =data.mapToPair(
new PairFunction<Tuple2<String, Integer>, Text, IntWritable>() {
public Tuple2<Text, IntWritable> call(Tuple2<String, Integer> record) throws Exception {
return new Tuple2(new Text(record._1()),new IntWritable(record._2()));
}
}
);
//将result以SequenceFile保存在指定目录下
result.saveAsHadoopFile("C://hadoop.file",Text.class,IntWritable.class, SequenceFileOutputFormat.class);
JavaPairRDD<Text,IntWritable> input=sc.sequenceFile("c://hadoop.file",Text.class,IntWritable.class);
JavaPairRDD<String,Integer> results =input.mapToPair(
new PairFunction<Tuple2<Text, IntWritable>, String, Integer>() {
public Tuple2<String, Integer> call(Tuple2<Text, IntWritable> record) throws Exception {
return new Tuple2<String,Integer>(record._1().toString(),record._2().get());
}
}
);
for(Tuple2<String,Integer> tuple: results.collect())
System.out.println(tuple._1()+"->" +tuple._2());
JavaPairRDD<String,Integer> data =sc
.parallelizePairs(Arrays.asList(new Tuple2<String, Integer>("zhouyang", 1),
new Tuple2<String, Integer>("jack", 2),
new Tuple2<String, Integer>("bob", 3)));
data.saveAsObjectFile("c://object.file");
JavaRDD<Tuple2<String,Integer>> input=sc.objectFile("c://object.file");
for(Tuple2<String,Integer> tuple:input.collect()){
System.out.println(tuple._1()+" -> "+tuple._2());
}
spark中数据的读取与保存的更多相关文章
- Numpy中数据的常用的保存与读取方法
小书匠 深度学习 文章目录: 1.保存为二进制文件(.npy/.npz) numpy.save numpy.savez numpy.savez_compressed 2.保存到文本文件 numpy. ...
- Python Numpy中数据的常用的保存与读取方法
在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...
- Spark SQL数据加载和保存实战
一:前置知识详解: Spark SQL重要是操作DataFrame,DataFrame本身提供了save和load的操作, Load:可以创建DataFrame, Save:把DataFrame中的数 ...
- IOS webview中cookie的读取与保存-b
Cookie 的读取 将它放在 webViewDidFinishLoad 开始后执行 NSArray *nCookies = [[NSHTTPCookieStorage sharedHTTPCooki ...
- spark中数据倾斜解决方案
数据倾斜导致的致命后果: 1 数据倾斜直接会导致一种情况:OOM. 2 运行速度慢,特别慢,非常慢,极端的慢,不可接受的慢. 搞定数据倾斜需要: 1.搞定shuffle 2.搞定业务场景 3 搞定 c ...
- Numpy中数据的常用的保存与读取
保存到文本文件numpy.savetxt()numpy.loadtxt() import numpy as np x= np.arange(0,10,0.1) np.savetxt('save_x', ...
- R语言学习笔记(数据的读取与保存)
library(MASS)#载入package MASSdata(package="MASS") #查看MASS中的数据集data(SP500,package="MASS ...
- 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...
- Ubuntu10.04中利用V4L2读取摄像头数据并保存成文件【转】
转自:http://blog.chinaunix.net/uid-29339876-id-4042245.html 利用V4L2读取UVC摄像头数据并保存成视频文件,主要参考http://linuxt ...
随机推荐
- time_wait和clost_wait说明
在服务器的日常维护过程中,会经常用到下面的命令: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 它会显示例如 ...
- Ubuntu系统如何修改主机名
1.执行命令 hostname temp_name 这样主机名就改掉了.只不过重启后名字会恢复不一定使我们想要的.机器重启后会重新去读取/etc/hostname里面存储的主机名.所以如果想永久改掉的 ...
- Efim and Strange Grade
Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input standa ...
- UILabel 解析及自适应
CGFloat width1=[(NSString *)ob1 sizeWithFont:[UIFont systemFontOfSize:16] constrainedToSize:CGSizeMa ...
- Python3基础 list() 将一个字符串转换成列表
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- Left/Right/Inner Join用法和区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...
- 用javascript实现完全的类(private、pubulic等)
js是面向对象的,但是其不像java一样完全的面向对象,但是利用其灵活性,我们可以使用它进行高度的模拟,来看下面的代码: function Student(name){ this.name=name; ...
- django第一篇
摘要: 1 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.模型即后端逻辑,视图就是url对应的前端展示 2本文简介了使用模型 ...
- bzoj 3879 虚树
题目大意: 给一个字符串,多次询问k个后缀,求它们两两间LCP长度总和 分析: 转化为后缀树,用虚树求 注意: 后缀树中代表后缀的点都是叶子节点 题目中取模并没有卵用 #include <cst ...
- Ketama Consisent Hash
问题描述 有一些目标节点 v1, v2...vn 需要一个算法,能够将任意key映射到目标节点中的一个vx 评价方式 1. 对于一个比较大的key集合,分布在各个目标节点的key的数量要尽可能均匀 2 ...