apache-spark - 非分区非事务配置单元表的自我覆盖是否适用于火花?
问题描述
我们在 yarn-client 模式下使用 spark 自己覆盖一个非分区表,就像我们在 Hive 中所做的那样。如果我们从集群本身(HDP-3.1.0)执行代码,则此方法有效,而当我们使用集群外部的客户端运行它时,会出现以下错误:“pyspark.sql.utils.AnalysisException:无法覆盖也正在从中读取的路径。;"。
在为您提供示例之前,我们希望回答以下问题:
- vanilla Spark(例如2.4.3 ...)是否支持非分区非事务表的自我覆盖?
- 您是否知道这如何/为什么与集群本身的 HDP-3.1.0 一起工作?
我们为您提供了一个示例代码,我们在集群上遇到了错误。我们尝试了 spark 版本的代码(2.4.3 ad spark 3.0.1)仅供参考:该表spark_test.overwrite_test1
是一个非事务性非分区配置单元表,它使用 ORC 文件写入数据。覆盖分区的非事务表有效
#! /usr/bin/env python3
"""Testing Spark insert overwrite of table on themselves"""
from pyspark.sql.session import SparkSession
import sys
name=sys.argv[1] if len(sys.argv) > 1 else ""
spark = (
SparkSession.builder.appName("stack_suite_"+name)
.enableHiveSupport()
.config("spark.hadoop.hive.exec.dynamic.partition.mode", "nonstrict")
.config("spark.sql.sources.partitionOverwriteMode", "dynamic")
.config("spark.sql.hive.convertMetastoreOrc", "false")
.getOrCreate()
)
spark.sql("""insert overwrite table spark_test.overwrite_test1
select * from spark_test.overwrite_test1 where id < 90
""")
我们期待得到您的回复。
解决方案
推荐阅读
- php - 如何在我的 Laravel 应用上发布图片?
- json - 如何快速将链接照片设置为按钮图像背景?
- php - 从 mysql 切换到 mysqli - 从同一数据库中的两个表中获取数据
- java - 为什么从 main 运行方法会导致“进程以退出代码 130 完成(被信号 2:SIGINT 中断)”
- python - 如何读取 csv 行并将其与我的列表进行比较
- javascript - 未捕获的类型错误:无法读取未定义的属性“clientWidth”
- c# - 尝试将流事件附加到 EventStore 会引发异常
- c# - 协程如何与 OnTriggerEnter2D 一起工作?
- python - 将零和一的矩阵转换为彩色图
- python - Pytorch DataLoader 不适用于远程解释器