PySpark的存储不同格式文件,如:存储为csv格式、json格式、parquet格式、compression格式、table
from __future__ import print_function, division
from pyspark import SparkConf, SparkContext
from pyspark.sql import SparkSession
## 启动 Spark (如果你已经启动就不需要)
spark = SparkSession.builder.master("local[2]").appName("test").enableHiveSupport().getOrCreate()
sc = spark.sparkContext
## 存储为csv格式
df_csv = spark.read.csv("../data/ratings.csv", header=True)
df_csv.show()
df_csv.write.csv('../output/rating.csv', header = True, mode = 'error') #保存数据
## 将文档保存在一个文件夹中
!ls -lh ../output/rating.csv #根据数量保存多个文件
!head ../output/rating.csv/part-00001-aece805c-20a7-4225-b152-40316bc8fc5e-c000.csv
df_csv.coalesce(1).write.csv('../output/rating2.csv', header = True)
!ls -lh ../output/rating.csv
## 存储为json格式
df_csv.write.json('../output/rating.json',mode = 'overwrite')
!ls -lh ../output/rating.json #根据数量保存多个文件
##注意:其中json的内存要比csv大(存储空间)
## 存储为parquet格式
df_csv.write.parquet('../output/rating.parquet',mode = 'overwrite')
!ls -lh ../output/rating.parquet #根据数量保存多个文件
## 存储为compression格式---压缩
df_csv.write.csv('../output/rating_gzip.csv', header = True, compression = 'gzip')
!ls -lh ../output/rating_gzip.csv #根据数量保存多个文件
## 存储为table
spark.sql('show tables').show()
df_csv.write.saveAsTable('rating_csv')
spark.sql("select * from ratings_csv").show()