首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PySpark:计算行最小值,忽略零和空值

在PySpark中,你可以使用pyspark.sql.functions模块中的函数来计算行的最小值,并忽略零和空值。以下是一个示例代码,演示如何使用PySpark计算行的最小值,同时忽略零和空值:

代码语言:javascript
复制
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, when

# 创建SparkSession
spark = SparkSession.builder.getOrCreate()

# 创建示例数据集
data = [(1, 2, 3, 0),
        (4, 5, 6, 7),
        (8, 9, None, 10),
        (11, 0, 13, 14),
        (15, 16, 17, None)]

df = spark.createDataFrame(data, ["col1", "col2", "col3", "col4"])

# 计算行的最小值,忽略零和空值
min_values = df.select(
    col("col1"),
    col("col2"),
    col("col3"),
    col("col4"),
    when(col("col1") != 0, col("col1")).otherwise(float("inf")).alias("min_col1"),
    when(col("col2") != 0, col("col2")).otherwise(float("inf")).alias("min_col2"),
    when(col("col3").isNotNull() & (col("col3") != 0), col("col3")).otherwise(float("inf")).alias("min_col3"),
    when(col("col4").isNotNull() & (col("col4") != 0), col("col4")).otherwise(float("inf")).alias("min_col4")
)

min_values.show()

在上述示例中,我们首先创建了一个SparkSession,并使用示例数据创建了一个DataFrame。然后,我们使用when函数和条件表达式来计算每一列的最小值。使用when函数,我们检查每个元素是否为零或空值,如果不是,则将其保留为最小值,否则将其设置为正无穷大(float("inf"))。最后,我们选择原始列和计算的最小值列,并显示结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券