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优化_seo云优化_搜索引擎seo_启新网络服务中心 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 实木家具_实木家具定制_全屋定制_美式家具_圣蒂斯堡官网 | 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 聚丙烯酰胺PAM-聚合氯化铝PAC-絮凝剂-河南博旭环保科技有限公司 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 潍坊青州古城旅游景点攻略_青州酒店美食推荐-青州旅游网 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 济南轻型钢结构/济南铁艺护栏/济南铁艺大门-济南燕翔铁艺制品有限公司 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 【官网】博莱特空压机,永磁变频空压机,螺杆空压机-欧能优 | 航拍_专业的无人机航拍摄影门户社区网站_航拍网 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 温州富欧金属封头-不锈钢封头厂家 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 2025第九届世界无人机大会 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 |