pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  • <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="g0mueuc" 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 不插入修改的數(shù)據(jù)

        Spark SQL and MySQL- SaveMode.Overwrite not inserting modified data(Spark SQL 和 MySQL- SaveMode.Overwrite 不插入修改的數(shù)據(jù))
        • <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="qouusii" 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 不插入修改的數(shù)據(jù)的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

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

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

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

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

                  但我的問題是,如果我提供覆蓋模式,它會(huì)刪除以前的表并創(chuàng)建一個(gè)新表但不插入任何數(shù)據(jù).

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

                  我在這里遺漏了什么嗎?

                  謝謝!

                  解決方案

                  問題出在您的代碼中.因?yàn)槟愀采w了一個(gè)你試圖從中讀取的表,所以在 Spark 可以實(shí)際訪問它之前,你有效地清除了所有數(shù)據(jù).

                  記住 Spark 是懶惰的.當(dāng)您創(chuàng)建 Dataset 時(shí),Spark 會(huì)獲取所需的元數(shù)據(jù),但不會(huì)加載數(shù)據(jù).所以沒有可以保留原始內(nèi)容的魔法緩存.數(shù)據(jù)將在實(shí)際需要時(shí)加載.這是當(dāng)您執(zhí)行 write 操作并且當(dāng)您開始寫入時(shí)沒有更多數(shù)據(jù)要獲取時(shí).

                  你需要的是這樣的:

                  • 創(chuàng)建一個(gè)數(shù)據(jù)集.
                  • 應(yīng)用所需的轉(zhuǎn)換并將數(shù)據(jù)寫入中間 MySQL 表.

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

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

                  • 創(chuàng)建一個(gè)數(shù)據(jù)集.
                  • 應(yīng)用所需的轉(zhuǎn)換并將數(shù)據(jù)寫入持久 Spark 表(df.write.saveAsTable(...) 或等效項(xiàng))
                  • TRUNCATE 原始輸入.
                  • 讀回?cái)?shù)據(jù)并保存 (spark.table(...).write.jdbc(...))
                  • 刪除 Spark 表.

                  我們不能過分強(qiáng)調(diào)使用 Spark cache/persist 不是正確的方法.即使使用保守的 StorageLevel (MEMORY_AND_DISK_2/MEMORY_AND_DISK_SER_2) 緩存數(shù)據(jù)也可能丟失(節(jié)點(diǎn)故障),導(dǎo)致無提示的正確性錯(cuò)誤.>

                  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.

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

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

                  相關(guān)文檔推薦

                  How to use windowing functions efficiently to decide next N number of rows based on N number of previous values(如何有效地使用窗口函數(shù)根據(jù) N 個(gè)先前值來決定接下來的 N 個(gè)行)
                  reuse the result of a select expression in the quot;GROUP BYquot; clause?(在“GROUP BY中重用選擇表達(dá)式的結(jié)果;條款?)
                  Does ignore option of Pyspark DataFrameWriter jdbc function ignore entire transaction or just offending rows?(Pyspark DataFrameWriter jdbc 函數(shù)的 ignore 選項(xiàng)是忽略整個(gè)事務(wù)還是只是有問題的行?) - IT屋-程序員軟件開發(fā)技
                  Error while using INSERT INTO table ON DUPLICATE KEY, using a for loop array(使用 INSERT INTO table ON DUPLICATE KEY 時(shí)出錯(cuò),使用 for 循環(huán)數(shù)組)
                  pyspark mysql jdbc load An error occurred while calling o23.load No suitable driver(pyspark mysql jdbc load 調(diào)用 o23.load 時(shí)發(fā)生錯(cuò)誤 沒有合適的驅(qū)動(dòng)程序)
                  How to integrate Apache Spark with MySQL for reading database tables as a spark dataframe?(如何將 Apache Spark 與 MySQL 集成以將數(shù)據(jù)庫表作為 Spark 數(shù)據(jù)幀讀取?)
                    <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="ouk0miu" 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. 主站蜘蛛池模板: 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 间甲酚,间甲酚厂家-山东祥东新材料 | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 首页 - 军军小站|张军博客 | 网站优化公司_SEO优化_北京关键词百度快速排名-智恒博网络 | 浙江清风侠环保设备有限公司| 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 海外仓系统|国际货代系统|退货换标系统|WMS仓储系统|海豚云 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 河南彩印编织袋,郑州饲料编织袋定制,肥料编织袋加工厂-盛军塑业 河南凯邦机械制造有限公司 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 全国国际化学校_国际高中招生_一站式升学择校服务-国际学校网 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 旋转气浴恒温振荡器-往复式水浴恒温振荡器-金怡百科 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 飞象网 - 通信人每天必上的网站 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 |