2016-10-21 152 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!