我知道数据帧应该是不可变的,而且我知道尝试更改它们并不是一个好主意。但是,我收到的文件有一个无用的4列标题(整个文件有50多列)。所以,我想要做的就是摆脱最上面的一行,因为它会抛弃一切。
我尝试了许多不同的解决方案(大多数都在这里找到),例如使用.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
有什么想法吗?
答案 0 :(得分:-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 :(得分:-2)
如果您的数据框只有1个分区,那么这应该有效:
val dfWithoutFirstRow = df.mapPartitions(iterator => iterator.drop(1))
否则请参阅here