你能指导我用pyspark(dataframe)用特定的hive分区上的新数据替换旧数据吗?
我有一个hive分区表,按县分区 .
每个月我都会收到一些县的记录 . 我想用旧分区上的新数据替换旧数据 .
我用pyspark开发了脚本,并为数据帧中的特定分区加载了新数据 . 现在,我想用旧分区的数据替换旧数据 . (因为基表很大)
我尝试删除该分区并附加新的数据帧 . 但这似乎不起作用(它有两个旧的新数据) . "Overwrite"
放弃了 table .
是否有任何方法可以单独用特定分区的新数据(new_dataframe)替换旧数据?
请找到我尝试过的以下代码:
sqlContext.sql('alter table db.tbl drop partition(partition=' + part1 + ')')
new_dataframe.write.mode("append/overwrite").format("parquet").partitionBy("partition").saveAsTable('db.tbl')
你能指导/建议火花的一些方法吗?
我用Google搜索并看到了删除HDFS中的分区文件等注释 . 我不认为这是一个好方法 . 另一个是运行配置单元查询 - 在该分区上插入覆盖 . 这是在蜂巢方面 .
火花中有类似的功能吗?
谢谢 .
1 回答
以下适用于我(CDH Spark 2.1.0 / Python 2.7) .
写的文件的默认格式是我的实木复合地板 . 所以,我省略了格式 .