【发布时间】:2021-11-10 04:31:39
【问题描述】:
我是 Hive 和 spark 的新手,试图将分区表记入其分区列,这是代码:
df.createOrReplaceGlobalTempView(tempTable)
insertSql = "INSERT OVERWRITE TABLE {} PARTITION(dt) SELECT column1, column2, dt FROM {}".format(exportTable, tempTable)
spark.sql(insertSql)
原点导出表:
column1 column2 dt
x1 x2 20210914
x3 x4 20210914
x5 x6 20210914
y1 y2 20210915
y3 y4 20210915
临时表:
column1 column2 dt
x7 x8 20210914
x9 x10 20210914
预期的导出表:
column1 column2 dt
x7 x8 20210914
x9 x10 20210914
y1 y2 20210915
y3 y4 20210915
但是像这样的 exportTable,完全被 tempTable 覆盖了。:
column1 column2 dt
x7 x8 20210914
x9 x10 20210914
我的 spark 版本是 2.2,我必须使用这个版本...
为什么这个 sql 不能工作?有什么问题吗?
【问题讨论】:
-
spark.conf.get("spark.sql.sources.partitionOverwriteMode")显示什么? -
我认为 spark2.2 中没有这个属性
-
issues.apache.org/jira/browse/SPARK-20236覆盖分区数据源表应该只覆盖相关分区
标签: apache-spark pyspark hive