【spark】小试牛刀sparksql和rdd

数据资料参考百度网盘:链接:https://pan.baidu.com/s/1nUj0NkKyHg0JoefJ_oz3ig?pwd=de8t
提取码:de8t

学习内容:

  1. 在spark shell中完成3个pdf文件中相应RDD基本操作
  2. Patient3.csv中包含病历数据,字段分别为:pid, 身高,体重,腰围,舒张压,收缩压。请RDD操作分别统计以下值:
    1)病人数量、平均身高、体重最大值、收缩压方差
    2)按体重升序、舒张压降序排序并输出
  3. 温度.txt数据中包含一段时间的温度测量数据,数据说明如下:
    a)第15-19个字符是年份
    b)第45-50位是温度表示,+表示零上 -表示零下,且温度的值不能是9999,9999表示异常数据
    c)第50位值只能是0、1、4、5、9几个数字
    要求:采用Spark SQL实现获取每年的最低温度。

val df = spark.read.option("header", "true").format("csv").load("data/patients3.csv")
df.describe("height","weight","systbp").show()
df.orderBy(df("weight"),-df("diasbp")).show()

在这里插入图片描述

val temp_filter = temp.filter(s => (s!="")&&(s.substring(46,50)!="9999")&&(List(0,1,4,5,9).contains(s.substring(50,51).toInt))).map( line => {
    
    
  (line.substring(15,19).toInt,line.substring(45,50).toInt)
} ).groupByKey().map(values=>(values._1,values._2.min)).collect()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_58598240/article/details/128191287