当我尝试使用bit()
编写Spark SQL时,会导致错误。
val tpos_dfr = sqlContext.sql("SELECT idcustomer, quantity, CASE WHEN quantity < 0 THEN 1::bit(1) ELSE 0::bit(1) END as isthisreturn FROM pointofsale WHERE iddataloadmanager = 10 and quantity <> 0")
线程“main”中的异常org.apache.spark.sql.catalyst.parser.ParseException:
无关的输入'数量'期待{,',','FROM','WHERE',GROUP','ORDER','HAVING','LIMIT','LATERAL','WINDOW','UNION','EXCEPT' ,'INTERSECT','SORT','CLUSTER','DISTRIBUTE'}(第1行,第122位)
答案 0 :(得分:1)
您可以使用布尔表达式,并使用结果布尔值而不是位,请尝试
SELECT
idcustomer,
quantity,
quantity < 0 as isthisreturn
FROM
pointofsale
WHERE
iddataloadmanager = 10 and quantity <> 0
如果您在数据框上调用printSchema()
,则应显示布尔数据类型。