PySpark DataFrame:如何快速查看指定列的数据类型?
查看PySpark DataFrame指定列类型的简便方法
不用每次通过select生成新DataFrame再调用printSchema(),有几种更直接高效的方式:
用
dtypes属性快速查询:dtypes会返回所有列名与对应类型的元组列表,直接过滤指定列即可:# 查询单列 [dtype for dtype in raw_df.dtypes if dtype[0] == 'annee'] # 查询多列 [dtype for dtype in raw_df.dtypes if dtype[0] in ['annee', 'col2', 'col3']]输出格式类似
[('annee', 'int')],直观获取类型信息。直接访问Schema对象:
DataFrame的schema是StructType对象,可通过列名索引直接获取列的类型:# 获取类型对象 raw_df.schema['annee'].dataType # 打印更友好的类型名称 print(raw_df.schema['annee'].dataType.simpleString())批量查询多列时,可遍历schema的fields:
for field in raw_df.schema.fields: if field.name in ['annee', 'age']: print(f"{field.name}: {field.dataType.simpleString()}")关于
raw_df.annee.printSchema()无效的原因:raw_df.annee返回的是Column对象,而printSchema()是DataFrame专属方法,Column对象没有这个方法,因此会报错。
内容的提问来源于stack exchange,提问作者bum
相关产品推荐
相关产品推荐

