spark,读取和写入同一张表问题

读取a表,写入a表

1.写入的是分区表,不报错

2.读取上来之后,创建为临时视图temp,然后先写入a表,再使用temp,就会报错

解决办法:可以先使用temp,再写入a表

3.写入的不是分区表,会报错

解决办法:先把数据收集到Driver,创建临时视图,再写入a表

4.万能解决办法:先把数据收集到Driver,创建临时视图,再写入a表

java 复制代码
Dataset<Row> dataset = spark.sql(get_new_id_Sql());

StructType schema = dataset.schema();

List<Row> rows = dataset.collectAsList();

spark.createDataFrame(rows, schema).createOrReplaceTempView("all_data");
sql 复制代码
insert overwrite table ods.a
select * from all_data

可能的原因:spark是移动数据不如移动计算,所以数据的路径还是a表,如果收集到Driver,路径就不是a表了

相关推荐
编程彩机9 小时前
互联网大厂Java面试:从分布式架构到大数据场景解析
java·大数据·微服务·spark·kafka·分布式事务·分布式架构
vx-bot5556669 小时前
企业微信接口在多租户SaaS平台中的集成架构与数据隔离实践
大数据·架构·企业微信
難釋懷11 小时前
分布式锁-redission锁重试和WatchDog机制
分布式
bubuly11 小时前
软件开发全流程注意事项:从需求到运维的全方位指南
大数据·运维·数据库
xixixi7777713 小时前
基于零信任架构的通信
大数据·人工智能·架构·零信任·通信·个人隐私
Hello.Reader14 小时前
Flink 自适应批执行(Adaptive Batch Execution)让 Batch 作业“边跑边优化”
大数据·flink·batch
kobe_t14 小时前
分布式定时任务系列14:XXL-job的注册模型
分布式
Knight_AL14 小时前
线程池满了怎么办?用 RabbitMQ 做任务补偿不丢失
分布式·rabbitmq·ruby
LaughingZhu15 小时前
Product Hunt 每日热榜 | 2026-01-31
大数据·人工智能·经验分享·搜索引擎·产品运营
babe小鑫15 小时前
中专学历进入快消大厂终端销售岗位的可行性分析
大数据