2017-09-13 28 views
0

Spark DataFrames的重複刪除方法不起作用,我認爲這是因爲作爲我數據集一部分的索引列被視爲一列數據。那裏肯定有重複,我通過比較除索引外的所有列上的COUNT()COUNT(DISTINCT())來檢查它。我是Spark DataFrame的新手,但如果我使用Pandas,那麼在這一點上,我會在該列上執行pandas.DataFrame.set_indexSpark DataFrame相當於pandas.DataFrame.set_index/drop_duplicates與dropDuplicates

有誰知道如何處理這種情況?其次,Spark DataFrame上似乎有兩種方法,drop_duplicatesdropDuplicates。他們是一樣的嗎?

+0

分享一些你的代碼,這將有助於我們理解這個問題更好。 – Munesh

回答

1

如果您不希望在檢查不同記錄時考慮索引列,則可以使用下面的命令刪除該列或僅選擇所需的列。

df = df.drop('p_index') // Pass column name to be dropped 

df = df.select('name', 'age') // Pass the required columns 

drop_duplicates()是dropDuplicates()的別名。

https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame.dropDuplicates

+0

謝謝,也爲鏈接。讓我對Spark文檔感到惱火的是,當您將某些內容放入搜索引擎時,您只需要一半的時間就可以訪問源代碼,而不是無用的文檔。好的,那麼會更喜歡沒有下劃線的drop命令,爲什麼它需要一個別名。關鍵是文檔中的'subset'參數。它消除了對索引列做某事的擔心。 – cardamom