2016-10-21 205 views
0

我想下面的語句轉換成DF select語句:Pyspark數據框中SQL

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

我曾嘗試以下,但它似乎沒有奏效:

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

您是否檢查了陳述的每個組成部分?你能提供你看到的錯誤嗎?你看到一些你在發佈之前需要考慮的事情。 – Chinny84

回答

2

當你正在執行集合函數,這裏可能會丟失的是GROUP BY聲明。如果是這樣,你的SQL語句應該是:

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

相應PySpark數據幀的語句會再

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!