【发布时间】:2019-02-07 19:04:17
【问题描述】:
您如何使用WHERE 关键字来获取在泰坦尼克号灾难中幸存者的性别数量及其百分比?
我的代码:
spark.sql(
"SELECT Sex Where Survived=1 ,count(Sex) \
as gender_count,count(sex)*100/sum(count(sex)) over() \
as percent from titanic_table GROUP BY sex"
).show()
错误:
ParseException: " mismatched input ',' expecting <EOF>(line 1, pos 28) == SQL == SELECT Sex Where Survived=1 ,count(Sex) as gender_count,count(sex)*100/sum(count(sex)) over() as percent from titanic_table GROUP BY sex ----------------------------^^^ "
【问题讨论】:
-
您的语法不正确。你不能像这样在
SELECT表达式中使用WHERE。它必须在FROM之后。在这种情况下,您似乎还需要使用GROUP BY。 -
我可以知道语法是什么样的吗?
-
一般形式为
SELECT <columns>, <aggregations> FROM table WHERE <conditions> GROUP BY <columns>。如需更具体的解释,请edit 在您的问题中包含一个小的、独立的reproducible example 以及所需的输出。
标签: apache-spark pyspark pyspark-sql