PySpark读取数据与保存

简介: PySpark读取数据与保存

Spark支持多种数据源如下


  • 文件格式与文件系统
  • 对于存储在本地文件系统或分布式文件系统(HDFS、NFS)等的数据,Spark可以访问很多种不同的文件格式,包括文本文件、JSON、SequenceFile以及protocol buffer
  • spark sql中结构化数据源

  • 数据库与键值存储

文件格式


格式名称 结构化 备注
文本文件 普通的文本文件,每一行一条记录
JSON 半结构化 常见的基于文本的格式,半结构化
CSV 非常常见的基于文本的格式,通常的电子表格应用中使用
SequenceFiles 一种用于键值对数据常见Hadoop文件格式
Protocol buffers 一种快速,节约空间的跨语言格式
对象文件 用来将Spark作业中的数据存储下来以让共享的代码读取·


文件保存


from pyspark import SparkContext,SparkConf
if __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,SparkConf
from 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来分别执行配置

相关文章
|
6月前
|
存储 SQL 分布式计算
Spark中的数据加载与保存
Spark中的数据加载与保存
|
3月前
|
SQL 机器学习/深度学习 分布式计算
|
3月前
|
分布式计算 大数据 数据处理
如何在 PySpark 中实现自定义转换
【8月更文挑战第14天】
45 4
|
3月前
|
数据采集 数据挖掘 大数据
如何处理 PySpark 中丢失的数据?
【8月更文挑战第13天】
57 0
|
6月前
|
SQL 分布式计算 JavaScript
利用SparkSQL读写Excel数据
利用SparkSQL读写Excel数据
201 0
|
6月前
【spark2.x】如何通过SparkSQL读取csv文件
【spark2.x】如何通过SparkSQL读取csv文件
194 0
|
存储 分布式计算 Java
Spark文件的读取和保存
Spark文件的读取和保存
272 0
|
JSON 分布式计算 Hadoop
Spark-数据读取与保存(Scala版)
Spark-数据读取与保存(Scala版)
|
存储 SQL 分布式计算
【Parquet】Spark读取Parquet问题详解……
【Parquet】Spark读取Parquet问题详解……
833 0
【Parquet】Spark读取Parquet问题详解……
|
分布式计算 Java Linux
PySpark分析二进制文件
PySpark分析二进制文件