Spark支持多种数据源如下 文件格式与文件系统 对于存储在本地文件系统或分布式文件系统(HDFS、NFS)等的数据,Spark可以访问很多种不同的文件格式,包括文本文件、JSON、SequenceFile以
Spark支持多种数据源如下
- 文件格式与文件系统
对于存储在本地文件系统或分布式文件系统(HDFS、NFS)等的数据,Spark可以访问很多种不同的文件格式,包括文本文件、JSON、SequenceFile以及protocol buffer - spark sql中结构化数据源
- 数据库与键值存储
文件格式
格式名称
结构化
备注
文本文件
否
普通的文本文件,每一行一条记录
JSON
半结构化
常见的基于文本的格式,半结构化
CSV
是
非常常见的基于文本的格式,通常的电子表格应用中使用
SequenceFiles
是
一种用于键值对数据常见Hadoop文件格式
Protocol buffers
是
一种快速,节约空间的跨语言格式
对象文件
是
用来将Spark作业中的数据存储下来以让共享的代码读取·
文件保存
from pyspark import SparkContext,SparkConfif __name__ == '__main__':
conf=SparkConf().setAppName("save file").setMaster("local")
sc=SparkContext(conf=conf)
rdd=sc.parallelize(range(1,1000))
rdd.saveAsTextFile("new_rdd")
sql读取保存文件
from pyspark import SparkContext,SparkConffrom pyspark.sql import SparkSession
import sys
if __name__ == '__main__':
#配置spark环境
conf=SparkConf().setAppName("save file").setMaster("local")
sc=SparkContext(conf=conf)
rdd=sc.textFile('dict.txt',2).map(lambda x:x.strip('\n').split())
#配置DataFrame环境
spark=SparkSession.builder.appName("to json").getOrCreate()
df=spark.createDataFrame(rdd,['id','freq','label'])
df.write.csv('data_tocsv',mode='overwrite')
df.write.json('dict_tojson',mode='overwrite')
df.write.parquet('dict_toparquet',mode='overwrite')
df.write.saveAsTable("dict_totabel")
其SparkSession模块包含SQLContext和HiveContext来分别执行配置