Solución:
Antes de Spark 1.2.0
La sintaxis compatible (que acabo de probar en Spark 1.0.2) parece ser
SELECT IF(1=1, 1, 0) FROM table
Este hilo reciente http://apache-spark-user-list.1001560.n3.nabble.com/Supported-SQL-syntax-in-Spark-SQL-td9538.html enlaza con la fuente del analizador SQL, que puede o no ayuda dependiendo de su comodidad con Scala. Como mínimo, la lista de palabras clave que comienza (al momento de escribir este artículo) en la línea 70 debería ayudar.
Aquí está el enlace directo a la fuente para mayor comodidad: https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala.
Actualización para Spark 1.2.0 y posteriores
A partir de Spark 1.2.0, se admite la sintaxis más tradicional, en respuesta a SPARK-3813: busque “CASE WHEN” en la fuente de prueba. Por ejemplo:
SELECT CASE WHEN key = 1 THEN 1 ELSE 2 END FROM testData
Actualización del lugar más reciente para averiguar la sintaxis del analizador SQL
La fuente del analizador ahora se puede encontrar aquí.
Actualización para ejemplos más complejos
En respuesta a una de las preguntas siguientes, la sintaxis moderna admite condiciones booleanas complejas.
SELECT
CASE WHEN id = 1 OR id = 2 THEN "OneOrTwo" ELSE "NotOneOrTwo" END AS IdRedux
FROM customer
Puede involucrar varias columnas en la condición.
SELECT
CASE WHEN id = 1 OR state="MA"
THEN "OneOrMA"
ELSE "NotOneOrMA" END AS IdRedux
FROM customer
También puede anidar la expresión CASE WHEN THEN.
SELECT
CASE WHEN id = 1
THEN "OneOrMA"
ELSE
CASE WHEN state="MA" THEN "OneOrMA" ELSE "NotOneOrMA" END
END AS IdRedux
FROM customer
Para Spark 2. +
Chispa cuando funciona
De la documentación:
Evalúa una lista de condiciones y devuelve una de las múltiples expresiones de resultado posibles. Si no se define lo contrario al final, se devuelve un valor nulo para las condiciones no coincidentes.
// Example: encoding gender string column into integer.
// Scala:
people.select(when(people("gender") === "male", 0)
.when(people("gender") === "female", 1)
.otherwise(2))
// Java:
people.select(when(col("gender").equalTo("male"), 0)
.when(col("gender").equalTo("female"), 1)
.otherwise(2))