You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Pandas的check_value函数迁移至PySpark实现

PySpark版空白字符占比与空值统计函数实现

以下是对应Pandas版本功能的PySpark实现,针对Spark DataFrame完成各列空白字符占比及空值数量统计:

from pyspark.sql import functions as F

def check_value_spark(df):
    total_count = df.count()
    result_list = []
    for col_name in df.columns:
        # 统计当前列的空值数量
        null_count = df.select(F.count(F.when(F.isnull(col_name), 1))).collect()[0][0]
        # 统计当前列全空白字符的记录数
        whitespace_count = df.select(F.count(F.when(F.trim(col_name) == "", 1))).collect()[0][0]
        # 计算空白字符占比(保留两位小数)
        whitespace_ratio = (whitespace_count / total_count) * 100 if total_count > 0 else 0.0
        # 组装结果字符串
        result_str = f'Column name: db_transactions/{col_name} has {whitespace_ratio:.2f} % of white_space character and {null_count} null values'
        result_list.append(result_str)
    return result_list

关键实现说明:

  • 总记录数获取:使用df.count()替代Pandas的df.shape[0],适配Spark分布式计算特性
  • 空值统计:通过F.isnull()配合count(when(...))实现高效的分布式空值计数,避免逐行遍历
  • 空白字符判断:用F.trim(col_name) == ""等效原逻辑中的str(x).isspace(),覆盖全空格、制表符等空白场景
  • 占比计算:增加总记录数为0的边界判断,避免除以0报错,同时用.2f格式化占比为两位小数

内容的提问来源于stack exchange,提问作者PythonLearner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:06:27