久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

  • <i id='rmjVK'><tr id='rmjVK'><dt id='rmjVK'><q id='rmjVK'><span id='rmjVK'><b id='rmjVK'><form id='rmjVK'><ins id='rmjVK'></ins><ul id='rmjVK'></ul><sub id='rmjVK'></sub></form><legend id='rmjVK'></legend><bdo id='rmjVK'><pre id='rmjVK'><center id='rmjVK'></center></pre></bdo></b><th id='rmjVK'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='rmjVK'><tfoot id='rmjVK'></tfoot><dl id='rmjVK'><fieldset id='rmjVK'></fieldset></dl></div>
      <legend id='rmjVK'><style id='rmjVK'><dir id='rmjVK'><q id='rmjVK'></q></dir></style></legend>

      <small id='rmjVK'></small><noframes id='rmjVK'>

      • <bdo id='rmjVK'></bdo><ul id='rmjVK'></ul>
      <tfoot id='rmjVK'></tfoot>

      1. Spark SQL 和 MySQL- SaveMode.Overwrite 不插入修改的數據

        Spark SQL and MySQL- SaveMode.Overwrite not inserting modified data(Spark SQL 和 MySQL- SaveMode.Overwrite 不插入修改的數據)
        • <tfoot id='BecoW'></tfoot>
            • <bdo id='BecoW'></bdo><ul id='BecoW'></ul>
              <i id='BecoW'><tr id='BecoW'><dt id='BecoW'><q id='BecoW'><span id='BecoW'><b id='BecoW'><form id='BecoW'><ins id='BecoW'></ins><ul id='BecoW'></ul><sub id='BecoW'></sub></form><legend id='BecoW'></legend><bdo id='BecoW'><pre id='BecoW'><center id='BecoW'></center></pre></bdo></b><th id='BecoW'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='BecoW'><tfoot id='BecoW'></tfoot><dl id='BecoW'><fieldset id='BecoW'></fieldset></dl></div>

                  <tbody id='BecoW'></tbody>

                <small id='BecoW'></small><noframes id='BecoW'>

                <legend id='BecoW'><style id='BecoW'><dir id='BecoW'><q id='BecoW'></q></dir></style></legend>

                1. 本文介紹了Spark SQL 和 MySQL- SaveMode.Overwrite 不插入修改的數據的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我在 MySQL 中有一個 test 表,其 ID 和名稱如下:

                  +----+-------+|身份證 |姓名 |+----+-------+|1 |姓名1 |+----+-------+|2 |姓名2 |+----+-------+|3 |姓名3 |+----+-------+

                  我正在使用 Spark DataFrame 讀取此數據(使用 JDBC)并像這樣修改數據

                  Datasetmodified = sparkSession.sql("select id, concat(name,' - new') as name from test");modified.write().mode("overwrite").jdbc(AppProperties.MYSQL_CONNECTION_URL,測試",連接屬性);

                  但我的問題是,如果我提供覆蓋模式,它會刪除以前的表并創建一個新表但不插入任何數據.

                  我通過從 csv 文件(與測試表相同的數據)讀取并覆蓋來嘗試相同的程序.那對我有用.

                  我在這里遺漏了什么嗎?

                  謝謝!

                  解決方案

                  問題出在您的代碼中.因為你覆蓋了一個你試圖從中讀取的表,所以在 Spark 可以實際訪問它之前,你有效地清除了所有數據.

                  記住 Spark 是懶惰的.當您創建 Dataset 時,Spark 會獲取所需的元數據,但不會加載數據.所以沒有可以保留原始內容的魔法緩存.數據將在實際需要時加載.這是當您執行 write 操作并且當您開始寫入時沒有更多數據要獲取時.

                  你需要的是這樣的:

                  • 創建一個數據集.
                  • 應用所需的轉換并將數據寫入中間 MySQL 表.

                  • TRUNCATE 原始輸入和 INSERT INTO ... SELECT 來自中間表或 DROP 原始表和 RENAME 中間表.

                  另一種但不太有利的方法是:

                  • 創建一個數據集.
                  • 應用所需的轉換并將數據寫入持久 Spark 表(df.write.saveAsTable(...) 或等效項)
                  • TRUNCATE 原始輸入.
                  • 讀回數據并保存 (spark.table(...).write.jdbc(...))
                  • 刪除 Spark 表.

                  我們不能過分強調使用 Spark cache/persist 不是正確的方法.即使使用保守的 StorageLevel (MEMORY_AND_DISK_2/MEMORY_AND_DISK_SER_2) 緩存數據也可能丟失(節點故障),導致無提示的正確性錯誤.>

                  I have a test table in MySQL with id and name like below:

                  +----+-------+
                  | id | name  |
                  +----+-------+
                  | 1  | Name1 |
                  +----+-------+
                  | 2  | Name2 |
                  +----+-------+
                  | 3  | Name3 |
                  +----+-------+
                  

                  I am using Spark DataFrame to read this data (using JDBC) and modifying the data like this

                  Dataset<Row> modified = sparkSession.sql("select id, concat(name,' - new') as name from test");
                  modified.write().mode("overwrite").jdbc(AppProperties.MYSQL_CONNECTION_URL,
                                  "test", connectionProperties);
                  

                  But my problem is, if I give overwrite mode, it drops the previous table and creates a new table but not inserting any data.

                  I tried the same program by reading from a csv file (same data as test table) and overwriting. That worked for me.

                  Am I missing something here ?

                  Thank You!

                  解決方案

                  The problem is in your code. Because you overwrite a table from which you're trying to read you effectively obliterate all data before Spark can actually access it.

                  Remember that Spark is lazy. When you create a Dataset Spark fetches required metadata, but doesn't load the data. So there is no magic cache which will preserve original content. Data will be loaded when it is actually required. Here it is when you execute write action and when you start writing there is no more data to be fetched.

                  What you need is something like this:

                  • Create a Dataset.
                  • Apply required transformations and write data to an intermediate MySQL table.

                  • TRUNCATE the original input and INSERT INTO ... SELECT from the intermediate table or DROP the original table and RENAME intermediate table.

                  Alternative, but less favorable approach, would be:

                  • Create a Dataset.
                  • Apply required transformations and write data to a persistent Spark table (df.write.saveAsTable(...) or equivalent)
                  • TRUNCATE the original input.
                  • Read data back and save (spark.table(...).write.jdbc(...))
                  • Drop Spark table.

                  We cannot stress enough that using Spark cache / persist is not the way to go. Even in with the conservative StorageLevel (MEMORY_AND_DISK_2 / MEMORY_AND_DISK_SER_2) cached data can be lost (node failures), leading to silent correctness errors.

                  這篇關于Spark SQL 和 MySQL- SaveMode.Overwrite 不插入修改的數據的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  How to use windowing functions efficiently to decide next N number of rows based on N number of previous values(如何有效地使用窗口函數根據 N 個先前值來決定接下來的 N 個行)
                  reuse the result of a select expression in the quot;GROUP BYquot; clause?(在“GROUP BY中重用選擇表達式的結果;條款?)
                  Does ignore option of Pyspark DataFrameWriter jdbc function ignore entire transaction or just offending rows?(Pyspark DataFrameWriter jdbc 函數的 ignore 選項是忽略整個事務還是只是有問題的行?) - IT屋-程序員軟件開發技
                  Error while using INSERT INTO table ON DUPLICATE KEY, using a for loop array(使用 INSERT INTO table ON DUPLICATE KEY 時出錯,使用 for 循環數組)
                  pyspark mysql jdbc load An error occurred while calling o23.load No suitable driver(pyspark mysql jdbc load 調用 o23.load 時發生錯誤 沒有合適的驅動程序)
                  How to integrate Apache Spark with MySQL for reading database tables as a spark dataframe?(如何將 Apache Spark 與 MySQL 集成以將數據庫表作為 Spark 數據幀讀取?)
                    <bdo id='2y9Xm'></bdo><ul id='2y9Xm'></ul>

                    <small id='2y9Xm'></small><noframes id='2y9Xm'>

                    • <tfoot id='2y9Xm'></tfoot>

                        <i id='2y9Xm'><tr id='2y9Xm'><dt id='2y9Xm'><q id='2y9Xm'><span id='2y9Xm'><b id='2y9Xm'><form id='2y9Xm'><ins id='2y9Xm'></ins><ul id='2y9Xm'></ul><sub id='2y9Xm'></sub></form><legend id='2y9Xm'></legend><bdo id='2y9Xm'><pre id='2y9Xm'><center id='2y9Xm'></center></pre></bdo></b><th id='2y9Xm'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='2y9Xm'><tfoot id='2y9Xm'></tfoot><dl id='2y9Xm'><fieldset id='2y9Xm'></fieldset></dl></div>

                          <tbody id='2y9Xm'></tbody>

                          <legend id='2y9Xm'><style id='2y9Xm'><dir id='2y9Xm'><q id='2y9Xm'></q></dir></style></legend>

                          1. 主站蜘蛛池模板: 国产日韩一区 | 欧美一级片在线 | 在线免费黄色网址 | 一区二区三区网站 | 免费毛片在线 | 国产极品在线观看 | 日本青青草 | 日本久久网站 | 精品国产一区二 | 国产日本在线观看 | 日韩城人网站 | 午夜在线 | 精品日韩在线观看 | 成人综合婷婷国产精品久久 | 欧美激情视频一区二区 | 欧美黄色一级视频 | 毛片www| 四虎在线视频 | 国产一区二区三区在线 | 欧美网站在线观看 | 在线中文av| 国产三级视频在线播放 | 欧美一区不卡 | 日韩一级免费视频 | 性史性dvd影片农村毛片 | 日韩高清毛片 | 一级黄色在线观看 | 国产一级片免费观看 | 国产999视频| 日本在线网站 | 成人在线免费观看视频 | 狠狠干综合 | 亚洲精品一区二区在线观看 | 天天躁日日躁狠狠躁伊人 | 色激情网 | 91精品国产成人观看 | www激情 | 超碰av在线播放 | 欧美精品一级片 | 久热精品在线观看 | 免费激情网站 |