package date_20250422

import java.util.Properties

import org.apache.spark.sql.{DataFrame, SparkSession}

object SparkSQLReadFromMySQL {
    def main(args: Array[String]): Unit = {
        // 创建 SparkSession
        val spark = SparkSession.builder()
          .appName("Spark SQL Read from MySQL")
          .config("spark.master", "local") // 使用 local 模式运行
          .getOrCreate()

        // 配置 MySQL 连接信息
        val jdbcUrl = "jdbc:mysql://hadoop102:3306/spark_db?useSSL=false"
        val connectionProperties = new Properties()
        connectionProperties.setProperty("user", "root")
        connectionProperties.setProperty("password", "123456")
        connectionProperties.setProperty("driver", "com.mysql.cj.jdbc.Driver") // 添加 MySQL JDBC 驱动

        // 读取 MySQL 表
        val studentDf: DataFrame = spark.read.jdbc(jdbcUrl, "student", connectionProperties)

        // 显示 student 表的内容
        studentDf.show()

        // 注册临时视图
        studentDf.createOrReplaceTempView("student")

        // 使用 SQL 语句查询
        spark.sql("SELECT * FROM student").show()

        // 停止 SparkSession
        spark.stop()
    }
}
