Spark Sqlチュートリアル(2)———DataFrame基本操作

1643 ワード

Spark sqlチュートリアルSpark Sqlチュートリアル(1)————sparkSession Spark Sqlチュートリアルを作成する(2)———DataFrame基本操作Spark Sqlチュートリアル(3)———DataFrame実行SqlクエリーSpark Sqlチュートリアルを実行する(4)———グローバルテンポラリテーブルとローカルテンポラリテーブルSpark Sqlチュートリアル(5)———datasetとdataframe Spark Sqlチュートリアル(6)———RDDからDataFrame Spark Sqlチュートリアルに変換する方法(7)———ParquetファイルSpark Sqlチュートリアル(8)———読み取り形式の多様なファイルタイプこのセクションでは、printScema()がツリー形式でdataframe構造情報select()を印刷し、select()where()orderBy()と組み合わせて使用できる基本的なdataFrame操作について説明します.
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")
    df.show()
    df.printSchema()//          
//    df.select("name").show()
    df.select($"name").show()
    df.select($"name",$"age"*2).orderBy($"age".asc).show()
    df.groupBy($"age").count().show()
    sparkSession.stop()

  }
}

出力された結果は次のとおりです.

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

root
 |-- age: long (nullable = true)
 |-- name: string (nullable = true)



+--------+
|    name|
+--------+
|zhangsan|
|    lisi|
+--------+



+--------+---------+
|    name|(age * 2)|
+--------+---------+
|zhangsan|        2|
|    lisi|        4|
+--------+---------+



+---+-----+
|age|count|
+---+-----+
|  1|    1|
|  2|    1|
+---+-----+