3 分钟的高速体验 Apache Spark SQL

“War of the Hadoop SQL engines. And the winner is …?” 这是一个非常好的问题。只要。无论答案是什么。我们都值花一点时间找出 Spark SQL 这个 Spark 里面的家庭成员。

原本Apache Spark SQL 官网上的代码片断(Spark官网上的样例有个通病:不提供完整代码)已经写得算比較清楚,但假设用户全然把它的代码拷贝下来,可能会碰到编译不通过的问题。另外,Spark官网上的样例还有另外一个通病:不提供test data。因此。为了大家能不走弯路、高速体验Spark
SQL API。本文将展示一个改写自官网样例的小程序,以及执行结果。

[A 程序]

[B 測试数据]

product.data:

[C 运行]

用 spark-submit 将程序提交到Yarn上运行。

[D 运行结果]

- Console:

- Yarn Web Console:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2FtaGFja2Vy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

- Yarn App Log:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2FtaGFja2Vy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

[E 小结]

- 注意须要把内部类 Product 定义在main方法外面,否则会引起编译错误

- 直接利用Spark SQL API定义一个“表对象”(SchemaRDD)还是比较简单

- 下一步骤可以是尝试和 HiveQL积分

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-26 10:23:45

3 分钟的高速体验 Apache Spark SQL的相关文章

3 分钟快速体验 Apache Spark SQL

"War of the Hadoop SQL engines. And the winner is -?" 这是个很好的问题.不过,无论答案如何,我们都值得花一点时间了解一下 Spark SQL 这个 Spark 家族里面的成员. 本来Apache Spark SQL 官网上的代码片断(Spark官网上的例子有个通病:不提供完整代码)已经写得算比较清楚,但如果用户完全把它的代码拷贝下来,可能会碰到编译不通过的问题.另外,Spark官网上的例子还有另外一个通病:不提供test data.

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)

问题 datafrme提供了强大的JOIN操作,但是在操作的时候,经常发现会碰到重复列的问题.在你不注意的时候,去用相关列做其他操作的时候,就会出现问题! 假如这两个字段同时存在,那么就会报错,如下:org.apache.spark.sql.AnalysisException: Reference 'key2' is ambiguous 实例 1.创建两个df演示实例 val df = sc.parallelize(Array( ("yuwen", "zhangsan&quo

Apache Spark SQL的简介

Spark SQL提供在大数据上的SQL查询功能,类似于Shark在整个生态系统的角色,它们可以统称为SQL on Spark. 之前,Shark的查询编译和优化器依赖于Hive,使得Shark不得不维护一套Hive分支,而Spark SQL使用Catalyst做查询解析和优化器,并在底层使用Spark作为执行引擎实现SQL的Operator. 用户可以在Spark上直接书写SQL,相当于为Spark扩充了一套SQL算子,这无疑更加丰富了Spark的算子和功能,同时Spark SQL不断兼容不同

spark python java.lang.IllegalStateException: Did not find registered driver with class org.apache.spark.sql.execution.datasources.jdbc.DriverWrapper

最近在学习spark分布式计算框架,其中遇到这样的问题 提交的命令是 bin/spark-submit  --jars lib/mysql-connector-java-5.1.38-bin.jar --master spark://Wechat-6:7077 examples/hsbhadoop/demo.py 出错的语句是 df.write.jdbc(MYSQL_CONNECTION_URL, 'Date_statistic', mode='append') 分析原因是在数据写入mysql的

关于在使用sparksql写程序是报错以及解决方案:org.apache.spark.sql.AnalysisException: Duplicate column(s): "name" found, cannot save to file.

说明: spark --version : 2.2.0 我有两个json文件,分别是emp和dept: emp内容如下: {"name": "zhangsan", "age": 26, "depId": 1, "gender": "male", "salary": 20000} {"name": "lisi", "ag

Spark源码系列(九)Spark SQL初体验之解析过程详解

好久没更新博客了,之前学了一些R语言和机器学习的内容,做了一些笔记,之后也会放到博客上面来给大家共享.一个月前就打算更新Spark Sql的内容了,因为一些别的事情耽误了,今天就简单写点,Spark1.2马上就要出来了,不知道变动会不会很大,据说添加了很多的新功能呢,期待中... 首先声明一下这个版本的代码是1.1的,之前讲的都是1.0的. Spark支持两种模式,一种是在spark里面直接写sql,可以通过sql来查询对象,类似.net的LINQ一样,另外一种支持hive的HQL.不管是哪种方

Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession 创建 DataFrames 无类型的Dataset操作 (aka DataFrame 操作) Running SQL Queries Programmatically 全局临时视图 创建Datasets RDD的互操作性 使用反射推断Schema 以编程的方式指定Schema Aggregatio

Apache Spark源码走读之11 -- sql的解析与执行

欢迎转载,转载请注明出处,徽沪一郎. 概要 在即将发布的spark 1.0中有一个新增的功能,即对sql的支持,也就是说可以用sql来对数据进行查询,这对于DBA来说无疑是一大福音,因为以前的知识继续生效,而无须去学什么scala或其它script. 一般来说任意一个sql子系统都需要有parser,optimizer,execution三大功能模块,在spark中这些又都是如何实现的呢,这些实现又有哪些亮点和问题?带着这些疑问,本文准备做一些比较深入的分析. SQL模块分析有几大难点,分别为

详解Spark sql用户自定义函数:UDF与UDAF

UDAF = USER DEFINED AGGREGATION FUNCTION Spark sql提供了丰富的内置函数供猿友们使用,辣为何还要用户自定义函数呢?实际的业务场景可能很复杂,内置函数hold不住,所以Spark sql提供了可扩展的内置函数接口:哥们,你的业务太变态了,我满足不了你,自己按照我的规范去定义一个sql函数,该怎么折腾就怎么折腾! 例如,MySQL数据库中有一张task表,共两个字段taskid (任务ID)与taskParam(JSON格式的任务请求参数).简单起见,