BMI的计算

该博客定义了一个BMI类,用于计算个人的体质指数并根据结果判断体型。通过输入体重和身高,程序会输出BMI值,并显示对应的体型状态,包括偏瘦、正常、偏胖和肥胖。

BMI的计算

%%writefile BIM.py
class BMI:
    def __init__(self,name,age,weight,high):
        self.name = name
        self.age = age 
        self.weight =weight
        self.high = high
    def print_bmi1(self):
        getBMI=self.weight/(self.high*self.high)
        print("{x}的BMI是".format(x=self.name))
    
        if getBMI<18.5:
            print("偏瘦")
        elif getBMI< 24:
            print("正常")
        elif getBMI<30:
            print("偏胖")
        else:
            print("肥胖")
                 
以下是运行使用 Apache Spark 进行 BMI 计算并添加分类列的 Scala 代码的详细步骤: ### 环境准备 确保已经安装了 Scala 和 Apache Spark。这里推荐使用 Scala 2.13 和 Spark 3.5.0 进行分布式计算[^3]。 ### 代码示例 ```scala import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._ object BMICalculator { def main(args: Array[String]): Unit = { // 创建 SparkSession val spark = SparkSession.builder() .appName("BMICalculator") .master("local[*]") .getOrCreate() // 模拟数据(实际可从文件、数据库等读取) val data = Seq( (1, "张三", 65.0, 1.75), (2, "李四", 80.0, 1.80), (3, "王五", 50.0, 1.60) ) // 转换为 DataFrame import spark.implicits._ val df = data.toDF("id", "name", "weight", "height") // 计算 BMI 并添加分类列 val bmiDF = df.withColumn("bmi", col("weight") / pow(col("height"), 2)) .withColumn("international_category", when(col("bmi") < 18.5, "偏瘦") .when(col("bmi") < 25, "正常") .when(col("bmi") < 30, "偏胖") .otherwise("肥胖") ) .withColumn("domestic_category", when(col("bmi") < 18.5, "偏瘦") .when(col("bmi") < 24, "正常") .when(col("bmi") < 28, "偏胖") .otherwise("肥胖") ) // 显示结果 bmiDF.show() // 停止 SparkSession spark.stop() } } ``` ### 代码运行 1. **保存代码**:将上述代码保存为一个 `.scala` 文件,例如 `BMICalculator.scala`。 2. **运行代码**:在终端中使用 `spark-submit` 命令来运行代码: ```bash spark-submit --class BMICalculator --master local[*] BMICalculator.scala ``` ### 代码解释 - **SparkSession 创建**:使用 `SparkSession.builder()` 创建一个 `SparkSession`,它是 Spark SQL 所有功能的入口点[^2]。 - **数据模拟**:使用 `Seq` 模拟了一些包含个人信息的数据。 - **DataFrame 创建**:使用 `toDF` 方法将 `Seq` 转换为 `DataFrame`。 - **BMI 计算**:使用 `withColumn` 方法和 `pow` 函数计算 BMI。 - **分类添加**:使用 `when` 和 `otherwise` 函数根据 BMI 值添加国际和国内的分类。 - **结果显示**:使用 `show` 方法显示计算结果。 - **SparkSession 停止**:使用 `stop` 方法停止 `SparkSession`。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值