天天看点

Spark学习之数据读取与保存(4)

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对象表示一条记录。
           

继续阅读