Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Gunakan SparkSession.sql() dengan JDBC

Spark bisa membaca dan tulis data ke/dari database relasional menggunakan sumber data JDBC (seperti yang Anda lakukan pada contoh kode pertama Anda).

Selain itu (dan sepenuhnya terpisah), percikan memungkinkan penggunaan SQL untuk menanyakan tampilan yang dibuat di atas data yang sudah dimuat ke dalam DataFrame dari beberapa sumber. Misalnya:

val df = Seq(1,2,3).toDF("a") // could be any DF, loaded from file/JDBC/memory...
df.createOrReplaceTempView("my_spark_table")
spark.sql("select a from my_spark_table").show()

Hanya "tabel" (disebut tampilan, pada Spark 2.0.0) yang dibuat dengan cara ini yang dapat ditanyakan menggunakan SparkSession.sql .

Jika data Anda disimpan dalam database relasional, Spark harus membacanya dari sana terlebih dahulu, dan baru setelah itu ia dapat menjalankan komputasi terdistribusi apa pun pada salinan yang dimuat. Intinya - kita dapat memuat data dari tabel menggunakan read , buat tampilan sementara, lalu kueri:

ss.read
  .format("jdbc")
  .option("url", "jdbc:mysql://127.0.0.1/database_name")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .load()
  .createOrReplaceTempView("my_spark_table")

// and then you can query the view:
val df = ss.sql("select * from my_spark_table where ... ")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memilih dua kolom sebagai satu?

  2. Simpan UUID v4 di MySQL

  3. Bagaimana saya bisa mencari (tidak peka huruf besar/kecil) di kolom menggunakan wildcard LIKE?

  4. MySQL FULLTEXT tidak berfungsi

  5. Apakah Tanggal kata kunci di mysql?