Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвайте SparkSession.sql() с JDBC

Spark може да чете и пишете данни към/от релационни бази данни, използвайки източника на данни JDBC (както направихте в първия си пример с код).

В допълнение (и напълно отделно), spark позволява използването на SQL за заявка за изгледи които са създадени върху данни, които вече са заредени в DataFrame от някакъв източник. Например:

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()

Само "таблици" (наречени изгледи, от Spark 2.0.0), създадени по този начин, могат да бъдат запитани с помощта на SparkSession.sql .

Ако вашите данни се съхраняват в релационна база данни, Spark ще трябва първо да ги прочете от там и едва след това ще може да изпълни каквото и да е разпределено изчисление върху зареденото копие. Долен ред - можем да заредим данните от таблицата с помощта на read , създайте временен изглед и след това го заявете:

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. Грешка при променлива DECLARE в процедурата на MySql

  2. Задайте изрично типа данни на клетка като текст за числови стойности

  3. Вземете продукт на редове (умножение)

  4. Включете нулеви резултати в group_concat

  5. SQL анализатор в PHP?