Spark为结构化数据处理引入了一个称为Spark SQL的编程模块。它提供了一个称为DataFrame的编程抽象,并且可以充当分布式SQL查询引擎。
SparkSQL具有以下的几个特点:
- 集成
无缝地将SQL查询与Spark程序混合。 Spark SQL允许您将结构化数据作为Spark中的分布式数据集(RDD)进行查询,在Python,Scala和Java中集成了API。这种紧密的集成使得可以轻松地运行SQL查询以及复杂的分析算法。
- 统一数据访问
加载和查询来自各种来源的数据。 Schema-RDDs提供了一个有效处理结构化数据的单一接口,包括Apache Hive表,Parquet文件和JSON文件。
- Hive兼容性
在现有仓库上运行未修改的Hive查询。 Spark SQL重用了Hive前端和MetaStore,为您提供与现有Hive数据,查询和UDF的完全兼容性。只需将其与Hive一起安装即可。
- 标准连接
通过JDBC或ODBC连接。 Spark SQL包括具有行业标准JDBC和ODBC连接的服务器模式。
- 可扩展性
对于交互式查询和长查询使用相同的引擎。 Spark SQL利用RDD模型来支持中查询容错,使其能够扩展到大型作业。不要担心为历史数据使用不同的引擎。
SparkSQL的体系结构:

尝试操作SparkSQL
启动spark的相关服务:
$SPARK_HOME/sbin/start-all.sh
进入到spark命令行模式:
spark-shell

SQLContext是一个类,用于初始化Spark SQL的功能。初始化SQLContext类对象需要SparkContext类对象(sc)。
我们可以先来初始化一个SparkContext。

首先我们创建一个emp.json的JSON文件,里面是员工基本信息。

使用以下命令创建DataFrame(df)并读取名为employee.json的JSON文档,并具有以下内容。
spark读取的默认路径在hdfs://localhost:8020/user/root/
我们将这个emp.json文件上传到这里去。
通过命令来读取JSON文件:

查看数据框的内容:

查看这个DataFrame的数据结构:
</

最低0.47元/天 解锁文章
928

被折叠的 条评论
为什么被折叠?



