Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 使用Dataframe代替spark sql进行数据分析_Apache Spark_Apache Spark Sql_Spark Dataframe - Fatal编程技术网

Apache spark 使用Dataframe代替spark 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,

下面是我编写的spark sql示例,用于获取机构中注册的男性和女性的数量。我使用sql生成输出, 有没有一种方法可以只用dataframe而不是sql来做类似的事情

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