pyspark数据帧的数据类型中的不同计数

pyspark数据帧的数据类型中的不同计数,pyspark,pyspark-dataframes,Pyspark,Pyspark Dataframes,我需要一个函数在PypPark数据帧中获得类似的内容: 变量类型: 数字:4 类别:4 日期:1让我们在Pyspark Shell中创建一个虚拟数据帧 rdd=sc.parallelize([[x',1,'y',2,1.1]]) >df=spark.createDataFrame(rdd,模式=['Col1','Col2','Col3','Col4','Col5']) 以下是df的列类型 >>df 数据帧[Col1:string,Col2:bigint,Col3:string,Col4:bigi

我需要一个函数在PypPark数据帧中获得类似的内容:

变量类型:

数字:4 类别:4
日期:1

让我们在Pyspark Shell中创建一个虚拟数据帧

rdd=sc.parallelize([[x',1,'y',2,1.1]])

>df=spark.createDataFrame(rdd,模式=['Col1','Col2','Col3','Col4','Col5'])

以下是df的列类型

>>df
数据帧[Col1:string,Col2:bigint,Col3:string,Col4:bigint,Col5:double]

根据文档,如果您在Spark数据帧上使用dtypes属性,您将得到“所有列名及其数据类型作为列表”

打印(df.dtypes) [('Col1','string'),('Col2','bigint'),('Col3','string'),('Col4','bigint'),('Col5','double')]

现在,您可以利用本机Python计数器库来获得所需的输出

>>来自集合导入计数器

>>数据类型=df.dtypes

dict(计数器(dict(数据类型).values()) {'string':2,'bigint':2,'double':1}

您应该能够轻松地将这两行转换为满足最终需求的函数

希望这有帮助