假设我有这样一个数据帧:
import pyspark
import pyspark.sql.functions as sf
import pyspark.sql.types as sparktypes
import datetime
sc = pyspark.SparkContext(appName="test")
sqlcontext = pyspark.SQLContext(sc)
rdd = sc.parallelize([('a',datetime.datetime(2014, 1, 9, 0, 0)),
('b',datetime.datetime(2014, 1, 27, 0, 0)),
('c',datetime.datetime(2014, 1, 31, 0, 0))])
testdf = sqlcontext.createDataFrame(rdd, ["id", "date"])
print(testdf.show())
print(testdf.printSchema())
给出测试数据帧:
^{pr2}$我想得到日期列的最大值:
max_date = testdf.agg(sf.max(sf.col('date'))).collect()
print(max_date)
给出:
[Row(max(date)=datetime.datetime(2014, 1, 31, 0, 0))]
如何在原始操作本身中应用自定义名称以显示而不是自动指定max(date)
,比如max_date
,这样我就可以以max_date[0]['max_date']
而不是max_date[0][0]
或{
你是说这个吗?在
还有更好的方法。不是真的。Collect会带来一个行的列表,您需要告诉您需要哪一列,以便使用:
^{pr2}$你不能再比这短了。。。在
相关问题 更多 >
编程相关推荐