如何在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` 函数来获取数据框中存在的列的名称。使用此函数,我们将获得数据框中每个列名称的列表。
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` 的示例数据框,其中包含两列:“姓名”和“年龄”。然后使用 `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 的列名对应的字符串。