spark写入数据报错

报错信息如下:

Exception in thread "main" org.apache.spark.sql.AnalysisException: Cannot overwrite table dwd.dim_user_info that is also being read from

at org.apache.spark.sql.DataFrameWriter.saveAsTable(DataFrameWriter.scala:720)

at org.apache.spark.sql.DataFrameWriter.saveAsTable(DataFrameWriter.scala:626)

at GS_1.task2$.writeDwdTable(task2.scala:103)

at GS_1.task2$.teast1(task2.scala:65)

at GS_1.task2$.main(task2.scala:109)

at GS_1.task2.main(task2.scala)

我的解决办法如下:

Scala 复制代码
    println("""这里有个报错:Exception in thread "main" org.apache.spark.sql.AnalysisException: Cannot overwrite table dwd.dim_user_info that is also being read from""")
    println("""读写同时报错,我的解决办法是,创建临时表b,删除原表a,表b创建表a,表a删除。""")
    frame.write.mode("overwrite").partitionBy("etl_date").saveAsTable(s"dwd.${dwdTableName}_B")   // 创建 B
    util.getSparkSession.sql(s"drop table dwd.${dwdTableName}")   // 删除 A
    util.getSparkSession.sql(s"select * from dwd.${dwdTableName}_B").write.mode("overwrite").partitionBy("etl_date").saveAsTable(s"dwd.${dwdTableName}")  // 复制B创建A
    util.getSparkSession.sql(s"drop table dwd.${dwdTableName}_B")   // 删除 B
相关推荐
TDengine (老段)4 小时前
TDengine 使用最佳实践(2)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
Deng9452013145 小时前
基于大数据的电力系统故障诊断技术研究
大数据·matplotlib·深度特征提取·随机森林分类算法·标签编码
C182981825756 小时前
分布式ID 与自增区别
分布式
小菜鸡06268 小时前
FlinkSQL通解
大数据·flink
寅鸷8 小时前
es里为什么node和shard不是一对一的关系
大数据·elasticsearch
码字的字节10 小时前
深入解析Hadoop架构设计:原理、组件与应用
大数据·hadoop·分布式·hadoop架构设计
阿里云大数据AI技术12 小时前
云上AI推理平台全掌握 (3):服务接入与全球调度
大数据·人工智能·深度学习
时序数据说12 小时前
如何选择时序数据库:关键因素与实用指南
大数据·数据库·物联网·时序数据库·iotdb
金牌服务刘12 小时前
选择一个系统作为主数据源的优势与考量
大数据·数据分析·连续集成
青云交13 小时前
Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频摘要快速生成与检索优化(345)
java·大数据·智能安防·视频摘要·检索优化·校园安防·低带宽传输