sql >> データベース >  >> RDS >> Mysql

SQLクエリからSparkデータフレームを作成する

    これはここで見つかりましたSparkSQLによる一括データ移行>

    dbnameパラメーターは、別名で括弧で囲まれた任意のクエリにすることができます。したがって、私の場合、これを行う必要があります:

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

    予想どおり、各テーブルを独自のデータフレームとしてロードし、Sparkで結合することは非常に非効率的でした。



    1. UNION、EXCEPT、またはINTERSECTを使用している場合のPostgreSQLの「エラー:テーブルのFROM句エントリがありません」を修正しました

    2. MySQL文字列の最後のインデックス

    3. OracleDatabaseで仮想索引を使用する方法

    4. このクエリはSQLインジェクションから安全ですか?