用 PySpark 分析泰坦尼克数据集,几行代码看出生存率

发布时间:2026/10/11 13:18:24
用 PySpark 分析泰坦尼克数据集,几行代码看出生存率
学大数据处理第一课往往不是背概念而是先跑通一个真实数据集。泰坦尼克号乘客数据titanic.csv几乎是 Spark 入门最经典的练手材料字段不多、关系直观又能立刻看出数据会说话。这篇文章用 PySpark 带你从读文件到分组统计几行代码就能回答一个很现实的问题——当时船上谁更容易活下来。环境准备pip install pyspark 即可不需要先搭集群本地单机模式local就能跑完这个量级的数据。如果你正在做 Spark 期末大作业这套代码可以直接当骨架改。第一步读数据from pyspark.sql import SparkSession spark SparkSession.builder.appName(titanic).getOrCreate() df spark.read.csv(titanic.csv, headerTrue, inferSchemaTrue) df.printSchema()Spark 读 CSV 很省心headerTrue 把第一行当列名inferSchemaTrue 自动推断类型省得手动定义 schema。第二步看总体存活率Survived 字段里 1 表示生还、0 表示遇难。求个平均值就是生还比例。from pyspark.sql.functions import avg df.select(avg(Survived).alias(overall_rate)).show()第三步按性别和舱位分组df.groupBy(Sex).avg(Survived).show() df.groupBy(Pclass).avg(Survived).show() df.groupBy(Sex, Pclass).avg(Survived) \ .orderBy(Sex, Pclass).show()把性别和舱位叠在一起结论更细头等舱女性存活率接近百分之百而三等舱男性最低。这就是泰坦尼克数据最著名的结论来源——妇孺优先不是口号是真的写进了救生艇规则头等舱离救生艇近、消息也灵存活率天然更高。为什么要用 PySpark读懂这些数字比记住Spark 是什么更有用。它告诉你数据分析的基本套路先有疑问谁更容易活再找维度性别、舱位最后用分组聚合把规律逼出来。PySpark 的价值是当数据从几千行变成几亿行时这套写法几乎不用改Spark 自动帮你把计算分到多台机器上并行跑。作业小建议把这份代码迁到你的 titanic.csv 上再加一两个维度比如年龄分段、是否 alone结论会更有层次也更容易在报告里写出我们发现……的句子。