, 그들은 정확히 동일합니다
val df = sc.parallelize(Seq((1,"a",123),(2,"b",456))).toDF("col1","col2","col3")
scala> df.filter(df.col("col2").equalTo("b")).explain
== Physical Plan ==
TungstenProject [_1#0 AS col1#3,_2#1 AS col2#4,_3#2 AS col3#5]
Filter (_2#1 = b)
Scan PhysicalRDD[_1#0,_2#1,_3#2]
scala> df.filter(col("col2").equalTo("b")).explain
== Physical Plan ==
TungstenProject [_1#0 AS col1#3,_2#1 AS col2#4,_3#2 AS col3#5]
Filter (_2#1 = b)
Scan PhysicalRDD[_1#0,_2#1,_3#2]
나는 이렇게 대답 할 수있는 몇 가지 더 재미를 위해 같은 설명 계획을 생성하는 방법뿐만 아니라
scala> df.filter(df("col2").equalTo("b")).explain
== Physical Plan ==
TungstenProject [_1#0 AS col1#3,_2#1 AS col2#4,_3#2 AS col3#5]
Filter (_2#1 = b)
Scan PhysicalRDD[_1#0,_2#1,_3#2]
scala> df.filter(df("col2") === "b").explain
== Physical Plan ==
TungstenProject [_1#0 AS col1#3,_2#1 AS col2#4,_3#2 AS col3#5]
Filter (_2#1 = b)
Scan PhysicalRDD[_1#0,_2#1,_3#2]
을 포함하여 직접 질문 : 아니요, 두 구문을 실행하는 방법에 차이가없는 것 같습니다
기능을 가져 오는 데 필요한 col 함수 (일반적으로 implicits)를 사용하면 하나의 차이점이 있습니다. 이것은 같은 방식으로 작동하는 다른 라이브러리 (AKKA HTTP)를 방해 할 수 있으며, 이들을 함께 연결해야하는 경우 고통이됩니다. 이것은 매우 드물지만. –