如何在 PySpark 中获取数据框列的名称?
在本文中,我们将讨论如何在 PySpark 中获取 Dataframe 列的名称。
为了获取 Dataframe 中存在的列的名称,我们通过这个函数使用columns函数,我们将获得 Dataframe 中存在的所有列名称的列表。
句法:
df.columns
我们还可以从 StructFields 列表中获取列的名称,然后从 StructFields 列表中提取列的名称。
句法:
df.schema.fields
让我们创建一个示例数据框,如下所示:
Python
# importing necessary libraries
from pyspark.sql import SparkSession
# function to create new SparkSession
def create_session():
spk = SparkSession.builder \
.master("local") \
.appName("Product_details.com") \
.getOrCreate()
return spk
def create_df(spark, data, schema):
df1 = spark.createDataFrame(data, schema)
return df1
if __name__ == "__main__":
input_data = [("Uttar Pradesh", 122000, 89600, 12238),
("Maharashtra", 454000, 380000, 67985),
("Tamil Nadu", 115000, 102000, 13933),
("Karnataka", 147000, 111000, 15306),
("Kerala", 153000, 124000, 5259)]
# calling function to create SparkSession
spark = create_session()
schema = ["State", "Cases", "Recovered", "Deaths"]
# calling function to create dataframe
df = create_df(spark, input_data, schema)
# visualizing the dataframe
df.show()
Python
# getting the list of column names
col = df.columns
# printing
print(f'List of column names: {col}')
# visualizing the dataframe
df.show()
Python
# getting the list of StructFields
field = df.schema.fields
# using for loop to iterate and enumerate
# for indexing or numbering
for count, col_name in enumerate(field, 1):
# printing the column names
print(count, "-", col_name.name)
# visualizing the dataframe
df.show()
Python
# printing Dataframe schema to
# get the column names
df.printSchema()
# visualizing the dataframe
df.show()
输出:
示例 1:使用 df.columns
在示例中,我们创建了 Dataframe,然后我们使用 df.columns 获取 Dataframe 中存在的列名列表 然后我们打印了列名列表。
Python
# getting the list of column names
col = df.columns
# printing
print(f'List of column names: {col}')
# visualizing the dataframe
df.show()
输出:
示例 2:使用 df.schema.fields
在示例中,我们创建了 Dataframe,然后我们将获取包含列名称、列数据类型和可为空标志的 StructFields 列表。
我们已经将这个 StructFields 列表存储在名为“field”的变量中,然后迭代 field 的 for 循环并获取迭代次数,我们已经获取了计数并使用 enumerate()函数来获取从 1 开始的计数,我们有在 enumerate()函数传递字段后传递 1 。然后同时打印列的计数和名称。
Python
# getting the list of StructFields
field = df.schema.fields
# using for loop to iterate and enumerate
# for indexing or numbering
for count, col_name in enumerate(field, 1):
# printing the column names
print(count, "-", col_name.name)
# visualizing the dataframe
df.show()
输出:
示例 3:使用 df.printSchema()
另一种查看或获取数据帧中列名的方法我们可以看到数据帧的模式,这可以通过函数printSchema() 完成此函数用于从该模式打印数据帧的模式,我们可以查看所有列名。
Python
# printing Dataframe schema to
# get the column names
df.printSchema()
# visualizing the dataframe
df.show()
输出: