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表了

相关推荐
Detachym7 分钟前
CentOS下的分布式内存计算Spark环境部署
分布式·spark·centos
layneyao8 分钟前
Ray框架:分布式AI训练与调参实践
人工智能·分布式
才朔HR12 分钟前
【无标题】
大数据·其他
Kookoos1 小时前
ABP vNext + Hive 集成:多租户大数据 SQL 查询与报表分析
大数据·hive·sql·.net·abp vnext
佛祖让我来巡山2 小时前
【分布式事务】从基础概念到现代解决方案的全面解析
分布式·分布式事务
CHEN5_023 小时前
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
数据库·redis·分布式·缓存
Smile丶凉轩5 小时前
技术栈RabbitMq的介绍和使用
c++·分布式·rabbitmq
柒间12 小时前
Elasticsearch 常用操作命令整合 (cURL 版本)
大数据·数据库·elasticsearch
G皮T14 小时前
【Elasticsearch】映射:fielddata 详解
大数据·elasticsearch·搜索引擎·映射·搜索·mappings·fielddata