2016-09-20 1 views
3

스칼라, 스파크, IntelliJ 및 maven을 사용하고 있습니다.오류 : 찾을 수 없음 : 값 켜기/언제 - 스칼라 스칼라

나는 코드 아래 사용하고 있습니다 :

val joinCondition = when($"exp.fnal_expr_dt" >= $"exp.nonfnal_expr_dt", 
$"exp.manr_cd"===$"score.MANR_CD") 

val score = exprDF.as("exp").join(scoreDF.as("score"),joinCondition,"inner") 

val score= list.withColumn("scr", lit(0)) 

하지만 시도는 받는다는을 사용하여 오류가 아래 점점 구축 할 때 -

error: not found: value when

error: not found: value lit

$===에 대해서는 import sqlContext.implicits.StringToColumn을 사용했으며 정상적으로 작동합니다. 메이븐 빌드시 오류가 발생하지 않았습니다. 그러나 lit(0)when에 대해 가져 오기가 필요하거나 다른 방법으로 문제를 해결할 수 있습니다.

val spark : SparkSession = _ // or val sqlContext: SQLContext = new SQLContext(sc) for 1.x 
val list: DataFrame = ??? 

when 사용하고 lit, 당신은 적절한 기능을 가져해야합니다 : 다음으로 이제 사용할 수 있습니다

import org.apache.spark.sql.functions.{col, lit, when} 

을 :

+0

'org.apache.spark.sql.functions'을 가져와야합니다. – cheseaux

+0

나는 당신의 질문에 대답했습니다. 목록의 유형은 무엇입니까? DataFrame입니까? – eliasah

+0

@eliasah : 둘 다 Dataframe입니다. – Avijit

답변

10

은의 다음과 같은 상황을 생각해 보자
list.select(when(col("column_name").isNotNull, lit(1))) 

이제 코드에서 점등을 사용할 수도 있습니다.

val score = list.withColumn("scr", lit(0)) 
+0

"import sqlContext.implicits.StringToColumn"$ 및 ===의 경우에 대한 대안이 있습니까? – Avijit