sql >> Database >  >> RDS >> Mysql

Spark-dataframe maken op basis van SQL-query

Ik vond dit hier Bulk datamigratie via Spark SQL

De parameter dbname kan elke query zijn die tussen haakjes is geplaatst met een alias. Dus in mijn geval moet ik dit doen:

val query = """
  (select dl.DialogLineID, dlwim.Sequence, wi.WordRootID from Dialog as d
    join DialogLine as dl on dl.DialogID=d.DialogID
    join DialogLineWordInstanceMatch as dlwim on dlwim.DialogLineID=dl.DialogLineID
    join WordInstance as wi on wi.WordInstanceID=dlwim.WordInstanceID
    join WordRoot as wr on wr.WordRootID=wi.WordRootID
    where d.InSite=1 and dl.Active=1
    limit 100) foo
"""

val df = sqlContext.format("jdbc").
  option("url", "jdbc:mysql://localhost:3306/local_content").
  option("driver", "com.mysql.jdbc.Driver").
  option("useUnicode", "true").
  option("continueBatchOnError","true").
  option("useSSL", "false").
  option("user", "root").
  option("password", "").
  option("dbtable",query).
  load()

Zoals verwacht was het erg inefficiënt om elke tabel als zijn eigen dataframe te laden en ze samen te voegen in Spark.



  1. Hoe de RTRIM()-functie werkt in MySQL

  2. PL/SQL ORA-01422:exact ophalen levert meer op dan het gevraagde aantal rijen

  3. 10 technieken voor het maken van formulieren in Microsoft Access

  4. mysql jdbc-stuurprogramma ondersteunt geen scheidingstekens in triggers met meerdere instructies