Spark Sql的默认数据格式是Parquet 文件,Spark SQL能够方便点的进行去读,甚至能够在Parquet文件上执行查询操作。
package sparksql
import org.apache.spark.sql.SparkSession
object SparkSqltest1 {
def main(args: Array[String]): Unit = {
//创建sparksession
val sparkSession=SparkSession.builder().appName("test1").master("local[*]")getOrCreate()
import sparkSession.implicits._
//读取文件形成dataframe
val df=sparkSession.read.json("hdfs://192.168.1.181:9000/json/data.json")
//写入为parquet文件
df.select($"name").write.save("hdfs://192.168.1.181:9000/json/data.parquet")
}
}
parquet文件的特点为:
- 可以跳过不符合和条件的数据,只读取需要的数据,可以降低IO数量
- 压缩编码可以进一步降低磁盘空间,用于同一列的数据类型是相同的,所以可以使用更加高效的数据编码形式
- 只读取需要的列,支持向量运算