IF Then ELSE와 동일한 Spark
이 예에서는 "iris_spark" DataFrame에 새 열 "Class"를 추가하는 것을 목표로 합니다. 기존 범주형 열 "iris_class"의 값을 기반으로 합니다. 카테고리.
그러나 제공된 코드에서 오류가 발생합니다.
iris_spark_df = iris_spark.withColumn( "Class", F.when(iris_spark.iris_class == 'Iris-setosa', 0, F.when(iris_spark.iris_class == 'Iris-versicolor',1)).otherwise(2))
오류 메시지는 제공된 코드와 달리 Spark의 when() 함수가 두 개의 인수만 사용함을 나타냅니다.
이 문제를 해결하기 위해 when() 함수를 사용하는 올바른 구조는 다음과 같습니다. 다음 중 하나:
(when(col("iris_class") == 'Iris-setosa', 0) .when(col("iris_class") == 'Iris-versicolor', 1) .otherwise(2))
또는
(when(col("iris_class") == 'Iris-setosa', 0) .otherwise(when(col("iris_class") == 'Iris-versicolor', 1) .otherwise(2)))
이러한 표현식은 SQL CASE 문과 동일합니다:
CASE WHEN (iris_class = 'Iris-setosa') THEN 0 WHEN (iris_class = 'Iris-versicolor') THEN 1 ELSE 2 END
및
CASE WHEN (iris_class = 'Iris-setosa') THEN 0 ELSE CASE WHEN (iris_class = 'Iris-versicolor') THEN 1 ELSE 2 END END
Spark의 when() 일반 구문 is:
when(condition, value).when(...)
or
when(condition, value).otherwise(...)
Hive IF 조건식 IF(condition, if-true, if-false)는 Spark에서 직접 지원되지 않으며 Hive를 지원하는 원시 SQL에 사용됩니다.
위 내용은 'when()'을 사용하여 Spark에서 IF-THEN-ELSE 논리를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!