【pyspark】一 spark dataframe 读写parquet、json、csv等文件

pyspark 读写文件

环境:zeppelin中的 notebook提交的代码,python 2.7,spark 2.3.1

pyspark 读 json
dataframe = spark.read.format("json").load("/tmp/testhdfsfile")  #路径是hdfs上的

注意json文件中,一条记录是一条json,不能换行,格式如下:

{"row":"1","field1":"value1"}
{"row":"1","field2":"value2"}

读取csv 等其他文件一样,但是csv有注意带不带header(就是列名信息),分隔符的注意事项;

pyspark 读parquet
dataframe=spark.read.parquet("/temp/testhdfsfile.parquet").select(['field1','field2','field3','field'])

注意:可以读一个parquet文件,也可以读多个parquet文件,select可以用于节约载入内存消耗,也可以让后续dataframe.unionAll()执行减少问题(字段名与个数都要相同)

pyspark 写文件到hdfs (一般都存为parquet读写都比json、csv快,还节约约75%存储空间)
dataframe.write.format("parquet").mode("overwrite").save(/temp/temphdfs.parquet)

dataframe.write.format("csv").option("header",“true”).mode("overwrite").save(/temp/temphdfs.parquet)
df=spark.read.format("csv").option("header",“true”).mode("overwrite").save(/temp/temphdfs.parquet)
#将数据的header列名保存到第一行,读的时候也要设置header为true,因为默认是false

你可能感兴趣的:(spark,python)