2017-10-23 9 views
1

죄송합니다. 중복 인 경우 죄송 합니다만 지적 된 해결책은 저에게 효과가 없습니다. 대부분 나는 여기에 기본적인 것을 놓치고 있습니다. 내가 (스칼라) 이렇게하여 "상태"(String 형의)라는 필드를 기준으로 여기에 관심있는 "행"의 일부를 필터링하기 위해 노력하고스파크 - 열 이름이 작동하지 않는 데이터 프레임에 필터/맵 적용

inputDF: org.apache.spark.sql.DataFrame = [ts: string, id: string ... 20 more fields] 

: 나는 Dataframe 아래와 같이이

<console>:143: error: overloaded method value filter with alternatives: 
    (func: org.apache.spark.api.java.function.FilterFunction[org.apache.spark.sql.Row])org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and> 
    (func: org.apache.spark.sql.Row => Boolean)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and> 
    (conditionExpr: String)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and> 
    (condition: org.apache.spark.sql.Column)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] 
cannot be applied to (Boolean) 
     inputDF.filter(inputDF("connState") == "BALANCED").show() 

사람이 여기에 잘못된 것을 지적시겠습니까 :

inputDF.filter(inputDF("state") == "BALANCED").show() 

그러나이 내게 오류를 준다? https://rklicksolutions.wordpress.com/2016/03/03/tutorial-spark-1-6-sql-and-dataframe-operations/에있는 예를 포함하여 몇 가지 예를 따라 왔지만 잘못 된 것이 무엇인지 파악할 수 없습니다. 내가

inputDF.filter(inputDF("state") === "BALANCED").show() 

내가 원하는 일을한다 대신 ==의 === 사용해야처럼

답변

0

보인다.

+0

'inputDF ("state")'는'org.apache.spark.sql.Column'을 리턴하고'=='는'Column' 데이터 유형으로 정의되지 않았기 때문에. '==='는 동등성을 검사하기 위해 정의됩니다. – philantrovert