У меня есть набор данных, в котором мне нужно получить некоторые данные, а также наиболее частые значения.
Пример кадра данных ниже.
from pyspark.sql import Row, functions as F
row = Row("UK_1","UK_2","Request_Date",'Approval_Date',"Cat",'Country','State' )
test_df = (sc.parallelize
([
row(1,1,'12/10/2016','10-10-2017',"A",'USA','NY'),
row(1,2,None,'10-1-2016','A','CAN','QC'),
row(2,1,'14/10/2016',None,'B','USA','FL'),
row('A',3,'!~2016/2/276','Bad Date','B','USA',None),
row(None,1,'26/09/2016','26/11/08','A',None,'ON'),
row(1,1,'12/10/2016','22-02-20','A',None,None),
row(1,2,None,'45/45/00','A','MEX','XPZ'),
row(2,1,'14/10/2016','None','B','DEU','DUS'),
row(None,None,'!~2016/2/276','12-01-2015','B','',''),
row(None,1,'26/09/2016',None,'A','USA','CA')
]).toDF())
test_df.show()
![enter image description here](https://i.stack.imgur.com/CmbvD.png)
У меня есть пример кода, но он не полный.
(
test_df
.agg
(
F.count('*').alias('count'),
F.countDistinct('Country').alias('distinct_country')
#.alias('top_2_countries')
)
.show()
)
Ожидаемые результаты, как показано ниже.
![enter image description here](https://i.stack.imgur.com/VmHS9.png)
Как это сделать.