Azure databricks spark overwrite 全量更新的时候容易碰到的问题

原因:Azure databricks spark overwrite 全量ADS层表更新的时候容易碰到的问题正在写入结果有服务请求这个表的数据那如何避免呢?

1、 databricks spark overwrite 到的的时候会先TRUNCATE TABLE 然后再写入,就会碰到查询是空的情况,解决办法是用存储过程解决先写入_bak表,再通过存储过程改表名的方式完成替换。以下是核心代码
注意是用 pymysql 执行

CALL DDL的在mysql的存储需要自己写哈

bash 复制代码
from pymysql import *

# 删除的操作
def ddl_mysql(ddlsql,database):
    
    if ddlsql is None or len(ddlsql)==0:
        return '参数deleteQuery异常!'
    
    jdbcUsername = ****
    jdbcPassword = ****
    
    #创建数据库的连接
    conn=connect(host='123456---_mysql.cn',user=jdbcUsername,password=jdbcPassword,database=database,charset='utf8')
    #创建一个游标对象 可以利用这个对象进行数据库的操作
    try:
        cur=conn.cursor()

        cur.execute(ddlsql)
        # 提交事物
        conn.commit()
        #res=cur.fetchall()

        print(ddlsql + ' is success!')
        #print('sucess')
    except Exception as ex:
        print(ex)
    finally:
        cur.close()
        conn.close()

下面是调用

bash 复制代码
# 开始执行用到的
Mydf = df
Mytable = "tab_produce"  # 生产的表名
Myschema = "produce_db"
Mytablebak = Mytable + '_bak'  # 先写入

print(' --执行存入mysql时间:' + str(datetime.datetime.now()) + ' 表为:' + Myschema + '.' + Mytablebak)
save_to_mysql_overwrite(Mydf,Myschema,Mytablebak)
print(' --在mysql上存储完成时间:' + str(datetime.datetime.now()) + ' 表为:' + Myschema + '.' + Mytablebak)
# 去call你mysql的存储过程
ddl_sql = "call xxxxx('{0}','{1}','{2}')".format(Myschema,Mytable,Mytablebak)
print(' --在mysql上执行过程开始时间:' + str(datetime.datetime.now()))
ddl_mysql(ddl_sql,Myschema)
print(' --在mysql上执行过程完成时间:' + str(datetime.datetime.now()) + ' 存入表为:' + Myschema + '.' + Mytable)
print(str(datetime.datetime.now()) + "数据写入xx表:" + Myschema + "." + Mytable +" 完成! ")
相关推荐
IT研究室4 天前
最新大数据毕业设计选题推荐-基于大数据的信用等级数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
计算机源码社5 天前
基于大数据技术的台北市住宅价格影响因素挖掘与可视化分析-基于Python与Hadoop的台北市住宅价格数据仓库构建与可视化
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
IT研究室5 天前
最新大数据毕业设计选题推荐-基于大数据的物流快递数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
IT研究室5 天前
最新大数据毕业设计选题推荐-基于大数据的鲜羊肉价格分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
计算机源码社5 天前
基于Hadoop+Spark的乳腺癌病理数据可视化分析系统 基于K-Means聚类与PCA降维的乳腺癌形态特征分析系统
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
高级程序源6 天前
django招聘网站信息爬取与分析系统79704-计算机课程设计、毕业设计
后端·python·mysql·小程序·django·flask·课程设计
躺柒6 天前
读数据架构知识体系指南01关系数据仓库(上)
数据仓库·架构·数据分析·spark·数据湖·关系数据库·企业数据仓库
IT研究室6 天前
最新大数据毕业设计选题推荐-基于大数据的天气预报预警数据可视化与分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
IT研究室6 天前
最新大数据毕业设计选题推荐-基于大数据的图书借阅数据可视化分析系统-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
lpfasd1237 天前
配置文件格式对比 与 AI Coding 的选择逻辑
python·flask·numpy