2017-05-15 2 views
-2

Unten ist die Probe Spark sql ich schrieb, um die Anzahl der männlichen und weiblichen in einer Agentur eingeschrieben zu bekommen.Ich verwendete sql, um die Ausgabe zu generieren, gibt es eine Möglichkeit, ähnliche Dinge zu tun mit Datenframe nur nicht sql.Verwenden von Datareframe anstelle von Spark sql für Datenanalyse

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) 
+0

, welche Version von Funken verwenden Sie? –

+0

Ich benutze Funken 2 in Hortonworks Sandbox –

Antwort

0

Beginnend mit Spark-1.6 Sie Pivot + Gruppe, was zu erreichen verwenden, können Sie

ohne Beispieldaten mögen (und meine eigene Verfügbarkeit von Funken> 1.5) ist hier eine Lösung, die funktionieren soll (nicht getestet)

val df = hiveContext.table("agency_enrollment") 
df.groupBy("district","gender").pivot("gender").count 

siehe How to pivot DataFrame? für ein allgemeines Beispiel

+0

Vielen Dank. Es funktionierte für mich –

Verwandte Themen