Spark项目学习-慕课网日志分析-days3-DataFrame&Dataset

1.DataFrame

    1)不是Spark SQL提出的,而是早期在R,Pandas中产生的

    2)DataFrame是一个以列(列名、列的类型、列值)的形式构成的分布式的数据集,按照列赋予不同的名称

    3)是关系型数据库中的一张表或者是R/Python中的一个dataframe概念,但是具有更多优化

2.DataFrame对比RDD(DataFrame能够具有更多信息)

RDD:

    java/scala ==> jvm

    python ==> python runtime

DataFrame:

    java/scala/python ==> Logic Plan 不同语言编程效果一样

3.DataFrame基本API常用操作

    1)peopleDF.printSchema 打印Schema信息

    2)peopleDF.show(100) 输出前100条记录

    3)peopleDF.select("name").show() 只查询name字段的记录

    peopleDF.select(peopleDF.col("name"),(peopleDF.col("age")+10).as("age2")).show() 查询某几列所有的数据,并且把数据都+10

    4)peopleDF.filter(peopleDF.col("age">19).show() 对某一列的值进行过滤

      studentDF.filter("substring(name,0,1)='M'").show 通过SubString函数将首字母为M的名字展示出来

    5)peopleDF.groupBy("age").count().show() 根据某一列进行分组再进行聚合操作

    6)peopleDF.sort(peopleDF("name").asc,peopleDF("id").desc).show  排序 按名字升序,按id降序

    7)peopleDF.join(peopleDF2,peopleDF.col("id")===peopleDF2.col("id")).show join表连接操作

4.DataFrame和RDD的互操作

    1)使用反射机制,将RDD转换为DataFrame,使用反射

5.DataFrame API操作案例实战(学生信息统计案例)

6.Dataset概述及使用

    1)Dataset是一个分布式的数据集,强类型,支持lambda公式,提供优化引擎,可以在Java和Scala里面使用

    2)spark如何解析csv文件

      val df = spark.read.option("header","true").option("inferScheme","true").csv(path)

      df.show()

    3)导入隐式转换:import spark.implicits._

    4)Dataset概述:静态类型和运行时类型安全,nengg

猜你喜欢

转载自blog.csdn.net/canglan211/article/details/82953527