PySpark 如何获取数据帧列的名称
以表格方式排列的具有命名数据值集合构成了PySpark中的数据帧列。数据的个体变量或属性,如人的年龄、产品的价格或顾客的位置,由列表示。
使用withColumn方法,您可以向PySpark数据帧添加列。该方法允许您为新列命名并指定生成其值的规则。创建列后,您可以使用它对数据进行多种操作,包括过滤、分组和聚合。这样可以在多个节点上并行分析PySpark数据帧中的列,实现更快更有效的数据分析。
获取PySpark数据帧列名称的算法
要在PySpark中获取数据帧列的名称,您应该按照以下技术和步骤进行:
步骤1 - 以表格方式排列的具有命名数据值集合构成了PySpark中的数据帧列。数据的个体变量或属性,如人的年龄、产品的价格或顾客的位置,由列表示。
步骤2 - PySpark中的columns属性返回数据帧中所有列名的列表,并可用于检索数据帧列的名称。由于不需要额外的计算或转换,这种方法简单而有效。
步骤3 - 使用select方法和列名作为输入,可以以另一种方式获取某个数据帧列的名称。为了使用columns属性提取列名作为字符串,该函数返回一个只包含选定列的新数据帧。
步骤4 - PySpark中的printSchema方法以树状方式显示数据帧的模式,是获取数据帧中列名的第三种方法。通过显示数据帧中每个列的名称和数据类型,这种方法可以轻松确定特定列的名称。
步骤5 - 最后一种选项是使用describe方法获取数据帧的统计概述,以及所有列的名称。通过使用columns属性,可以生成一个字符串列表,该方法返回一个新的数据帧,其中包含有关每个列的统计数据。
语法
df.columns
列名也可以从结构字段列表中获取,然后可以用它们来检索列名。
语法
df.schema.fields
方法
方法1
我们使用columns函数来获取Dataframe中存在的列名。通过使用这个函数,我们将获得一个包含Dataframe中每个列名的列表。
from pyspark.sql import SparkSession
# Create a SparkSession object
spark = SparkSession.builder.appName("Get Column Names").getOrCreate()
# Create a sample dataframe
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["Name", "Age"])
# Get the column names
column_names = df.columns
# Print the column names
print(column_names)
输出
['Name', 'Age']
在这个例子中,我们首先创建一个名为df的样本数据框,包含两列:”Name”和”Age”。然后使用columns属性获取列名列表,并保存在column_names变量中。最后,我们使用print函数输出列名。
方法2
在这个例子中,通过使用数据框对象的select()函数获取列名。我们使用列表推导式遍历数据框的每一列,并在每个列名上调用col()方法。然后使用name属性获取实际列名,将其作为参数传递给select()函数。结果数据框中只包含指定的列,我们可以使用columns属性获取。最后,我们使用print函数输出列名。
示例
from pyspark.sql.functions import col
from pyspark.sql import SparkSession
# Create a SparkSession object
spark = SparkSession.builder.appName("Get Column Names").getOrCreate()
# Create a sample dataframe
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["Name", "Age"])
# Use the select() function to get column names
column_names = df.select([col(c).name for c in df.columns]).columns
# Print the column names
Print(column_names)
输出
['Name', 'Age']
结论
columns属性可以用来获得PySpark DataFrame列的名称。DataFrame中的列名由该属性提供的字符串列表表示。
使用PySpark的createDataFrame()方法创建一个DataFrame,然后将数据和列名作为参数传递给该DataFrame以使用该属性。然后可以使用columns属性获取DataFrame的列名。输出将是一组与DataFrame的列名对应的字符串。