2016-11-10 2 views
1

ich eine JSON-Datei, die ich den folgenden Code importieren mit:einen Datenrahmen zu den häufigsten Kombinationen von zwei Säulen Reduzierung

spark = SparkSession.builder.master("local").appName('GPS').config(conf=SparkConf()).getOrCreate() 
df = spark.read.json("SensorData.json") 

Das Ergebnis ist ein Datenrahmen ähnlich wie diese:

+---+---+ 
| A| B| 
+---+---+ 
| 1| 3| 
| 2| 1| 
| 2| 3| 
| 1| 2| 
| 3| 1| 
| 1| 2| 
| 2| 1| 
| 1| 3| 
| 1| 2| 
+---+---+ 

Meine Aufgabe besteht darin, PySpark zu verwenden, um die Daten auf nur die häufigsten Kombinationen von zwei Spalten zu reduzieren (A und B).

Also die gewünschte Ausgabe ist diese

+---+---+-----+ 
| A| B|count| 
+---+---+-----+ 
| 1| 2| 3| 
| 2| 1| 2| 
+---+---+-----+ 

Antwort

1

können Sie tun das mit einer Kombination aus groupBy und Grenze:

spark = SparkSession.builder.master("local").appName('GPS').config(conf=SparkConf()).getOrCreate() 
df = spark.read.json("SensorData.json") 

df.groupBy("A","B") 
    .count() 
    .sort("count",ascending = False) 
    .limit(2) 
    .show() 
+---+---+-----+ 
| A| B|count| 
+---+---+-----+ 
| 1| 2| 3| 
| 2| 1| 2| 
+---+---+-----+ 
+0

Aber ich große Daten haben und es manuell nicht tun können. Außerdem muss ich es in Funke für Effizienz – fsfr23

+0

Json-Datei ausführen, aber ich habe es bereits richtig gelesen – fsfr23

+0

Ja, ich habe es in einem Datenrahmen, aber habe keine SQL – fsfr23

Verwandte Themen