2016-07-11 2 views
-1

나는이 CSV 파일에 다음 데이터 (실제로, 내 실제 데이터가 큰하지만 좋은 단순화) :사용자 정의 방식

ColumnA,ColumnB 
1,X 
5,G 
9,F 

내가 다음과 같은 방법을 읽고있다, url 파일의 위치입니다 :

읽기
val rawData = sqlContext.read 
    .format("com.databricks.spark.csv") 
    .option("header", "true") 
    .option("inferSchema", "true") 
    .load(url) 

, 나는 그런 https://github.com/databricks/spark-csv

를 사용하고, 나는 그것에지도를 신청하는 :

val formattedData = rawData.map(me => me("ColumnA") match { 
    //some other code 
    }) 

그러나, 나는이 같은 열을 참조하고 때 me("ColumnA") 나는 형식이 일치 점점 오전 :

Type mismatch, expected: Int, actual: String 

왜이 발생을? rawData의 모든 행은지도가 아니어야합니까?

답변

2

datafram의 행에서 perticular 열을 참조 할 때이를 수행 할 수있는 몇 가지 방법이 있습니다. 적용 메소드를 사용하는 경우 열의 인덱스를 전달해야합니다. 또는 이름으로 열을 가져 오려면 Row의 getAs [T] 함수를 사용해야합니다.

은 그래서 당신은 사용할 수 있습니다

me(0) 

또는

me.getAs[T]("ColumnA") 

가 당신을 도움이되기를 바랍니다.

관련 문제