如何从Spark SQL中的最大值行中提取列值?

时间:2017-11-25 20:57:21

标签: apache-spark pyspark apache-spark-sql spark-dataframe pyspark-sql

假设我有一个名为" 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)

0 个答案:

没有答案