2016-09-23 4 views
0

데이터 프레임이 변경 될 수 없다는 것을 알고 있고 모든 것을 변경할 수 있다는 것을 알고 있습니다. 그러나, 내가받는 파일에는 쓸모없는 4 개의 열 헤더가 있습니다 (전체 파일에는 50 개 이상의 열이 있습니다). 그래서, 내가하려고하는 것은 모든 것을 던지기 때문에 최상단 행을 없애는 것입니다.스칼라 - 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

내가 지금까지 본 가장 깨끗한 방법은 뭔가 첫 번째 줄을 필터링하는 선을 따라

당신의 dataframe 만 1 개 파티션이있는 경우 6,
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

이 작동합니다 :/:

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

그렇지 않으면 here

+0

음, 네,하지만 파티션이 하나뿐이라면 왜 Spark를 사용하고 있습니까? –

+0

1 파티션에서 스파크를 사용하지 않습니다 .... –

+0

"데이터 프레임에 파티션이 하나만있는 경우"답변이있는 경우에만 작동합니다. 모든 데이터가 하나의 파티션에 들어 맞으면 Spark를 사용하는 것이 중요하지 않습니다. 로컬로 수행하십시오. –

관련 문제