2016-08-16 117 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')) 

寫入的文件的默認格式是對我實木複合地板。所以,我省略了格式。

相關問題