Spark 教程

Spark SQL

Spark 笔记

Spark MLlib

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/spark-dataframe-modify-column-values-with-condition.html

spark dataframe 如何根据条件修改某列的值

Spark DataFrame 原理及操作详解 Spark DataFrame 原理及操作详解


spark 的 dataframe 对象数据中,如何指定的列若要满足某种条件,设置特定值,否则保留原始值?

推荐做法

spark sql 提供了判断条件的 when 和 otherwise 函数,以 pyspark 为例,假设 impression 列小于 40 的值都设置为 0,具体如下:

import json

from pyspark.sql import SparkSession
from pyspark.sql.functions import col, when

spark_session = SparkSession.builder \
    .appName('knowledgedict-dataframe') \
    .master('local') \
    .getOrCreate()

df = spark_session.createDataFrame(
    schema=['id', 'impression', 'click', 'ctr', 'city', 'content'],
    data=[
        (1, 100, 5, 0.05, 'beijing', ['product']),
        (None, 10, 3, 0.3, 'beijing', ['product', 'article']),
        (3, 50, 5, 0.1, 'shanghai', ['article', 'person'])
    ]
)

print(df)
df.show()

df = df.withColumn('impression', when(col('impression') == 10, 0).otherwise(col('impression')))
df.show()

 

pandas 的 DataFrame 矩阵数据对象如何根据某列的条件给另一个指定列进行赋值? ...
pyspark 的 dataframe 对象数据获取行数和列数和 pandas 的 dataframe 的操作不同,它并没有 shape 属 ...
Elasticsearch根据条件删除数据的实现方式Elasticsearch是一个强大的分布式搜索和分析引擎,可以根据条件删除数据。在上面 ...
SparkDataFrame是2015年3月13日发布的Spark1.Transformation操作:即转换操作,实际上是在构建一个执行计 ...
spark dataframe 的 fillna 函数等同于 na.fill(),na.fill 函数底层也是调用 fillna,它的作用是 ...