我正在尝试将我的数据帧写入分区的hive表中,.Hive表的格式是parquet。
但我无法将df写到Hive表中。
我正在尝试将我的数据帧写入分区的hive表中,.Hive表的格式是parquet。
但我无法将df写到Hive表中。
Spark2.3和分区配置单元表
当我试图将finaldf加载到配置单元分区表中时,我得到了以下错误
finaldf.write.mode("overwrite").format("parquet").partitionBy("mis_dt","country_codfe").saveAsTable("FinalTable")错误:U‘无法重写表schema.Offertablethat也在从中读取;’
当我在谷歌上搜索上面的错误时,他们建议将df加载到临时表中,并加载到最终的hive表中。我尝试了该选项,但再次失败,并出现不同的错误。
finaldf.createOrReplaceTempView('tmpTable')
final= spark.read.table('tmpTable')
final.write.mode("overwrite").insertInto("Finaltable")错误:创建的分区数为7004,大于1000。
但我不认为我们有那么多分区。
finaldf.write.mode("overwrite").format("parquet").partitionBy("mis_dt","country_codfe").saveAsTable("FinalTable")
第二个选项:
finaldf.createOrReplaceTempView('tmpTable')
final= spark.read.table('tmpTable')
final.write.mode("overwrite").insertInto("Finaltable")我希望使用spark 2.3将数据写入hive拼花文件格式表
finaldf.write.mode("overwrite").format("parquet").partitionBy("mis_dt","cntry_cde").saveAsTable("finaltable")发布于 2019-05-28 00:05:05
在Spark >= 2.3中引入了spark.sql.sources.partitionOverwriteMode
sparkConf.set("spark.sql.sources.partitionOverwriteMode", "dynamic")
sparkConf.set("hive.exec.dynamic.partition", "true")
sparkConf.set("hive.exec.dynamic.partition.mode", "nonstrict")使用下面的代码-
final.write.mode(SaveMode.Overwrite).insertInto("table")注意:表应该在带有分区的配置单元中创建。
https://stackoverflow.com/questions/56329167
复制相似问题