Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Użyj SparkSession.sql() z JDBC

Spark potrafi czytać i pisz dane do/z relacyjnych baz danych przy użyciu źródła danych JDBC (tak jak w pierwszym przykładzie kodu).

Ponadto (i całkowicie osobno) spark umożliwia używanie SQL do wysyłania zapytań o widoki które zostały utworzone na danych, które zostały już załadowane do DataFrame z jakiegoś źródła. Na przykład:

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

Tylko "tabele" (nazywane widokami, od Spark 2.0.0) utworzone w ten sposób mogą być odpytywane przy użyciu SparkSession.sql .

Jeśli Twoje dane są przechowywane w relacyjnej bazie danych, Spark będzie musiał je najpierw odczytać, a dopiero potem będzie mógł wykonać dowolne rozproszone obliczenia na załadowanej kopii. Konkluzja - możemy załadować dane z tabeli za pomocą read , utwórz widok tymczasowy, a następnie przeprowadź zapytanie:

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. AKTUALIZUJ wiele tabel w MySQL za pomocą LEFT JOIN

  2. Jak sprawdzić, czy mysqli_query usunął jakieś wiersze?

  3. MySql:wysyłanie zapytań do wielu identycznych tabel dynamicznych

  4. Połączenie JDBC MySQL przy użyciu gniazda Unix

  5. Wstawianie wielu wierszy w tabeli za pomocą PHP