当前位置 : 主页 > 编程语言 > java >

PySpark读取数据与保存

来源:互联网 收集:自由互联 发布时间:2022-06-30
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,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来分别执行配置


网友评论