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()