PySpark 如何获取数据帧列的名称

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的列名对应的字符串。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程