2016-09-23 2069 views
0

我知道dataframes應該是不可變的,而且我知道嘗試改變它們並不是一個好主意。但是,我收到的文件有4列的無用標題(整個文件有50列以上)。所以,我試圖做的只是擺脫最頂端的行,因爲它拋出一切。Scala - 刪除Spark DataFrame的第一行

我已經嘗試了一些不同的解決方案(主要在這裏找到),如使用.filter()和地圖替換,但沒有得到任何工作

這裏的數據是如何看起來一個例子:?

H | 300 | 23098234 | N 
D | 399 | 54598755 | Y | 09983 | 09823 | 02983 | ... | 0987098 
D | 654 | 65465465 | Y | 09983 | 09823 | 02983 | ... | 0987098 
D | 198 | 02982093 | Y | 09983 | 09823 | 02983 | ... | 0987098 

任何想法

+3

的可能的複製[如何跳過從星火CSV文件頭?](HTTP:/ /stackoverflow.com/questions/27854919/how-to-skip-header-from-csv-files-in-spark) – zero323

回答

-1

迄今爲止我見過的最乾淨的方法是什麼沿着篩選出的第一行

csv_rows   = sc.textFile('path_to_csv') 
skipable_first_row = csv_rows.first() 
useful_csv_rows = csv_rows.filter(row => row != skipable_first_row) 
-1

如果你的數據幀只有1分,這應該工作:

val dfWithoutFirstRow = df.mapPartitions(iterator => iterator.drop(1)) 

否則看到here

+0

嗯,是的,但如果你只有一個分區,你爲什麼使用Spark? –

+0

我沒有使用1分區的火花.... –

+0

「如果你的數據幀只有1分區」你的答案只適用於你。如果所有的數據都放在一個分區中,那麼使用Spark就沒有意義了。 –