【大数据分析】Spark SQL查询:DataFrame

​@TOC
这篇文章的所有数据可以通过以下链接获取

链接:https://pan.baidu.com/s/1-Vlo3S8tjMyM6E0kwGALwQ
提取码:nlri

DataFrame可处理结构化数据(按行和列组织的数据,其中每列仅包含特定类型的值)。原本SQL是处理这类数据最常用的方法,而Spark的SparkSQL组件集成了SQL的用法。

DataFrame介绍

RDD代表了一种低级,直接的方式来处理Spark中的数据,它是Spark运行时的核心,而DataFrame API用于类似于表的形式处理结构化的分布式数据。DataFrame的灵感来自几种语言:Python的Pandas包中的DataFrame,R中的DataFrame和Julia语言的DataFrame。Spark的不同之处在于它们的分布式特性和Spark的Catalyst,它可以基于可插拔数据源、规则和数据类型实时优化资源使用。

假设有一个需要连接两种类型数据的查询,Spark SQL可以通过在DataFrame中加载这两个数据源来实现。如下图所示

两个客户端(使用DataFrame DSL的Spark应用程序和通过JDBC连接的非Spark客户端应用程序)执行连接两份数据的查询,这两份数据来自不同的数据源,一个是关系型数据库,另一个是HDFS中的Parquet文件。图中Hive是在Hadoop MapReduce之上构建的抽象层的分布式仓库,被广泛应用于数据查询和分析。SparkSQL允许将DataFrame注册到表目录中的表中,这些表不保存数据,而保存有关如何访问结构化数据的信息。

你可能感兴趣的:(数据分析,spark,sql)