Spark Sql教程(8)———读取形式多样的文件类型

Spark SQL 默认读取的是parquet文件,使用的方法是save和load,如果要读取其他格式的文件,需要制定资源的格式名,如果是parquet格式的文件,我们可以直接在文件上进行查询操作。
另外写入时,我们可以指定写入的方式,如append(追加)、overwrite(覆盖)等

package sparksql

import org.apache.spark.sql.{SaveMode, SparkSession}
object SparkSqltest1 {

  def main(args: Array[String]): Unit = {

    //创建sparksession
    val   sparkSession=SparkSession.builder().appName("test1").master("local[*]")getOrCreate()
    import  sparkSession.implicits._
    //读取文件形成dataframe

    //直接在parquet查询
    sparkSession.sql("select *  from  parquet.`E:/download/person.parquet`").show()
    //读取parquet文件
    sparkSession.read.load("E:/download/person.parquet")
    //读取其他类型的文件
    val  df1=sparkSession.read.format("json").load("hdfs://192.168.1.181:9000/json/data.json")
    //指定写入模式
    sparkSession.sql("select *  from  parquet.`E:/download/append.parquet`").show()
    df1.write.mode(SaveMode.Append).save("E:/download/append.parquet")
    sparkSession.sql("select *  from  parquet.`E:/download/append.parquet`").show()
  }
}

结果为

+---+--------+
|age|    name|
+---+--------+
|  1|zhangsan|
|  2|    lisi|
+---+--------+

+---+--------+
|age|    name|
+---+--------+
|  1|zhangsan|
|  2|    lisi|
|  1|zhangsan|
|  2|    lisi|
+---+--------+

+---+--------+
|age|    name|
+---+--------+
|  1|zhangsan|
|  2|    lisi|
|  1|zhangsan|
|  2|    lisi|
|  1|zhangsan|
|  2|    lisi|
+---+--------+

你可能感兴趣的:(Spark Sql教程(8)———读取形式多样的文件类型)