2016-10-21 17 views
0

ich die folgende Anweisung in DF-select-Anweisung umwandeln möchten:Pyspark Datenrahmen SQL

Select 
YY, 
PP, 
YYYY, 
PPPP, 
Min(ID) as MinId, 
Max(ID) as MaxID 
from LoadTable 

Ich habe versucht, die folgenden aber es tut zu sein scheinen arbeiten:

df.select(df.ID,df.YY, df.PP,df.YYYY,df.PPPPP).agg({"ID": "max", "ID": "min"}).toPandas().to_csv(outputFile, sep="|", header=True, index=False) 
+2

Haben Sie jede Komponente der Anweisung überprüft? Können Sie die angezeigten Fehler anzeigen? Sie sehen eine Reihe von Dingen, die Sie beachten müssen, bevor Sie hier posten. – Chinny84

Antwort

2

Wie Sie ausführen ein Aggregatfunktion, was Sie hier möglicherweise fehlen, ist die GROUP BY Aussage. Wenn ja, würde Ihre SQL-Anweisung sein:

SELECT YY, PP, YYYY, PPPP, Min(ID) as MinId, Max(ID) as MaxID 
    FROM LoadTable 
GROUP BY YY, PP, YYYY, PPPP 

Die entsprechende PySpark Datenrahmen Anweisung

from pyspark.sql import functions as F 
df.groupBy(df.YY, df.PP, df.YYYY, df.PPPP).agg(F.min(df.ID), F.max(df.ID)) 

HTH dann wäre!

Verwandte Themen