📌  相关文章
📜  在 PySpark 中选择满足条件的列(1)

📅  最后修改于: 2023-12-03 15:07:46.153000             🧑  作者: Mango

在 PySpark 中选择满足条件的列

在 PySpark 中,可以使用 select 方法对 DataFrame 进行列选择。而对于选择满足条件的列,可以结合 whenotherwise 语句进行条件选择。以下是一个简单的示例:

from pyspark.sql.functions import when

# 创建一个 DataFrame
df = spark.createDataFrame([
    (1, 'apple', 3.0, 0.5),
    (2, 'banana', 2.5, 0.3),
    (3, 'orange', 2.0, 0.2),
    (4, 'grape', 3.5, 0.6)
], ['id', 'name', 'price', 'discount'])

# 选择一列
df.select('id').show()

# 选择多列
df.select('id', 'name').show()

# 根据条件选择列
df.select(
    'id',
    'name',
    when(df['price'] > 3.0, 'high').otherwise('low').alias('price_tag'),
    when(df['discount'] > 0.5, 'high').otherwise('low').alias('discount_tag')
).show()

在以上示例中,我们首先创建了一个 DataFrame,包含了商品的编号、名称、价格、折扣四列。接着使用 select 方法,可以选择一列或多列数据。最后,使用 whenotherwise 语句,对价格和折扣数据根据条件进行选择,并新创建了两列标签 price_tagdiscount_tag。运行上述代码输出结果如下:

+---+
| id|
+---+
|  1|
|  2|
|  3|
|  4|
+---+

+---+------+
| id|  name|
+---+------+
|  1| apple|
|  2|banana|
|  3|orange|
|  4| grape|
+---+------+

+---+------+---------+-------------+
| id|  name|price_tag|discount_tag |
+---+------+---------+-------------+
|  1| apple|     high|          low|
|  2|banana|      low|          low|
|  3|orange|      low|          low|
|  4| grape|     high|         high|
+---+------+---------+-------------+

以上就是在 PySpark 中选择满足条件的列的简单介绍。通过结合 whenotherwise 语句,可以轻松地对 DataFrame 中的列进行条件选择和标记。