2016-08-16 113 views
1

你能引导我使用pyspark来代替对具体蜂巢分区的新数据旧数据与蜂巢分区表新的更换旧的数据(数据帧)Pyspark:使用数据框

我有一个蜂巢分区表,分区由县。

每个月我都会得到一些县的记录。我想用该分区上的新数据替换旧数据。

我已经开发了带有pyspark的脚本,并在数据框中加载了特定分区的新数据。现在,我想用这个分区的新数据来替换旧数据(因为基表很大)

我试着删除那个分区并追加新的数据帧。但是这似乎不起作用(它有旧+新数据)。 “覆盖”会丢弃表格。

火花有没有办法用新数据(new_dataframe)替换旧数据?

请找到以下码了我与尝试: sqlContext.sql( '改变表db.tbl下降分区(分区=' + part1的+ ')') new_dataframe.write.mode(“追加/覆盖“).format(”parquet“)。partitionBy(”partition“)。saveAsTable('db.tbl')

请问您能否引导/建议spark中的某种方法?

我已经google了一下,看到像在HDFS中删除分区文件的评论。我不认为这是一个好方法。 另一个是运行配置单元查询 - 在该分区上插入覆盖。这是蜂巢方面。

火花中是否有类似的功能?

谢谢。

回答

0

以下适用于我(CDH Spark 2.1.0/Python 2.7)。

>>> df.write.saveAsTable('<table_name>',mode='overwrite',partitionBy=('county')) 

写入的文件的默认格式是对我实木复合地板。所以,我省略了格式。

相关问题