环境:zeppelin中的 notebook提交的代码,python 2.7,spark 2.3.1
dataframe = spark.read.format("json").load("/tmp/testhdfsfile") #路径是hdfs上的
注意json文件中,一条记录是一条json,不能换行,格式如下:
{"row":"1","field1":"value1"}
{"row":"1","field2":"value2"}
读取csv 等其他文件一样,但是csv有注意带不带header(就是列名信息),分隔符的注意事项;
dataframe=spark.read.parquet("/temp/testhdfsfile.parquet").select(['field1','field2','field3','field'])
注意:可以读一个parquet文件,也可以读多个parquet文件,select可以用于节约载入内存消耗,也可以让后续dataframe.unionAll()执行减少问题(字段名与个数都要相同)
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