假设我有一个名为" data.csv"
的csv文件id,a,b,c,d
1, 0,3,4,100
1, 0,4,2,100
2, 1,0,1,102
1, 9,0,1,201
...
我已经使用以下代码创建了一个spark会话
from pyspark.sql import SparkSession, SQLContext
spark = SparkSession.builder.appName("myCSV").getOrCreate()
df = spark.read.csv("data.csv", inferschema=True, header=True)
df.registerTempTable("my_table")
有没有办法创建一个查询,让我在按ID分组时提取其中一列最多的行的值?这样,我的意思是让我的查询看起来像
query = """
SELECT id,
MAX(a),
the value of b in the row with max(a),
the value of c in the row with max(a)
FROM my_table GROUP BY id
"""
queried_df = spark.sql(query)