Spark学习之数据读取与保存(4)
1. 文件格式
Spark对很多种文件格式的读取和保存方式都很简单。
如文本文件的非结构化的文件,如JSON的半结构化文件,如SequenceFile结构化文件。通过扩展名进行处理。
2. 读取/保存文本文件
Python中读取一个文本文件
input = sc.textfile("file:///home/holen/repos/spark/README.md")
Scala中读取一个文本文件
val input = sc.textFile("file:///home/holen/repos/spark/README.md")
Java中读取一个文本文件
JavaRDD<String> input = sc.textFile("file:///home/holen/repos/spark/README.md")
saveAsTextFile()方法用了保存为文本文件
3. 读取/保存JSON文件
Python中读取JSON文件
import json
data = input.map(lambda x: json.loads(x))
Python中保存为JSON文件
(data.filter(lambda x: x["lovesPandas"]).map(lambda x: json.dumps(x)))
.saveAsTextFile(outputFile)
4. Spark SQL中的结构化数据
结构化数据指的是有结构信息的数据————也就是所有的数据记录都有具有一致字段结构的集合。
在各种情况下,我们把一条SQL查询给Spark SQL,让它对一个数据源执行查询,然后得到由Row对象组成的RDD,每个Row对象表示一条记录。