Apache spark 使用Dataframe代替spark sql进行数据分析
下面是我编写的spark sql示例,用于获取机构中注册的男性和女性的数量。我使用sql生成输出, 有没有一种方法可以只用dataframe而不是sql来做类似的事情Apache spark 使用Dataframe代替spark sql进行数据分析,apache-spark,apache-spark-sql,spark-dataframe,Apache Spark,Apache Spark Sql,Spark Dataframe,下面是我编写的spark sql示例,用于获取机构中注册的男性和女性的数量。我使用sql生成输出, 有没有一种方法可以只用dataframe而不是sql来做类似的事情 val districtWiseGenderCountDF = hiveContext.sql(""" | SELECT District,
val districtWiseGenderCountDF = hiveContext.sql("""
| SELECT District,
| count(CASE WHEN Gender='M' THEN 1 END) as male_count,
| count(CASE WHEN Gender='F' THEN 1 END) as FEMALE_count
| FROM agency_enrollment
| GROUP BY District
| ORDER BY male_count DESC, FEMALE_count DESC
| LIMIT 10""".stripMargin)
从Spark 1.6开始,您可以使用pivot+group by实现您想要的功能 如果没有样本数据(以及我自己的spark>1.5可用性),这里有一个应该可以工作的解决方案(未经测试)
有关一般示例,请参见您使用的spark版本是什么?我正在Hortonworks沙盒中使用spark 2
val df = hiveContext.table("agency_enrollment")
df.groupBy("district","gender").pivot("gender").count