sparkSQL读取数据的方法

本文中所有数据以本地数据为数据源

1、读取json文件

object ReadJson {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("testpeople").master("local")
      .getOrCreate()
    import spark.implicits._
    val test = spark.read.json("C:/Users/Administrator/Desktop/课程代码/employee.json")
    test.select("name").show()
    test.show()

  }

}

sparkSQL读取数据的方法_第1张图片

2、读取txt文件

    spark.read下除了json方法用于读取json文件外,还有读取数据的而其他方式,使用testFile方法时一直不行,不清楚是对txt文件的格式有要求还是后续的方法不对,有朋友知道的劳烦指点下

val testtxt = spark.read.textFile("C:/Users/Administrator/Desktop/课程代码/employee.txt")
testtxt.show()    //成功读取文件数据
testtxt.select("name").show()

sparkSQL读取数据的方法_第2张图片

     后来改用createDataFrame方法,这种方法不像前面的那个,稍微麻烦点,textFile返回的是个RDD,通过createDataFrame方法将RDD转为DataFrame进行查询

object ReadTxt {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("testpeople").master("local")
      .getOrCreate()
    // 使用createDataFrame
    val FileRDD = spark.sparkContext.textFile("C:/Users/Administrator/Desktop/课程代码/testT.txt",2)
      .map(x=>x.split(","))
      .map(x=>Row(x(0),x(1).trim.toInt))
    //set schema structure
    val schema = StructType(
      Seq(
        StructField("name",StringType,true)
        ,StructField("age",IntegerType,true)
      )
    )
    val DF = spark.createDataFrame(FileRDD,schema)
    DF.show()
    DF.select("name").show() 
 }
}

sparkSQL读取数据的方法_第3张图片sparkSQL读取数据的方法_第4张图片

 

 

你可能感兴趣的:(sparkSQL读取数据的方法)