spark SQL:在大数据查询是,使用SQL让我们方便了许多。。。
1. pom
<dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.7</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>1.5.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>1.5.1</version>
<build> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <args> <arg>-feature</arg> </args> </configuration> </plugin> </plugins> </build>
2.sparkSQL.scala
import java.sql.DriverManager import org.apache.spark.rdd.JdbcRDD import org.apache.spark.{ SparkContext, SparkConf } import org.apache.spark.sql.Row import org.apache.spark.sql.types.{ IntegerType, StringType, StructField, StructType } object sparkSQL { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Simple Application").setMaster("local[*]") val sc = new SparkContext(conf) val sqlContext = new org.apache.spark.sql.SQLContext(sc) val people = sc.textFile("i:/4/people.txt") val dog = sc.textFile("i:/4/dog.txt") // 这个 schema 字符类型是字符串 val schemaPeople = "name age" val schemadog = "name age" // 导入 Row. import org.apache.spark.sql.Row; // 导入 Spark SQL 数据类型 import org.apache.spark.sql.types.{ StructType, StructField, StringType }; // Generate the schema based on the string of schema val schemaPer = StructType( schemaPeople.split(" ").map(fieldName => StructField(fieldName, StringType, true))) val schemaD = StructType( schemadog.split(" ").map(fieldName => StructField(fieldName, StringType, true))) // Convert records of the RDD (people) to Rows. val rowRDD = people.map(_.split(",")).map(p => Row(p(0), p(1).trim)) val rowRDD2 = dog.map(_.split(",")).map(p => Row(p(0), p(1).trim)) // Apply the schema to the RDD. val peopleDataFrame = sqlContext.createDataFrame(rowRDD, schemaPer) val dogDataFrame = sqlContext.createDataFrame(rowRDD2, schemaD) // 注册DataFrames为表。 peopleDataFrame.registerTempTable("people") dogDataFrame.registerTempTable("dog") // SQL语句可以通过使用由sqlContext提供的SQL方法运行。 val results = sqlContext.sql("SELECT p.name,d.name,p.age,d.age FROM people p,dog d where p.age=d.age") // SQL查询的结果是DataFrames支持所有的正常的RDD操作。 results.map(t => "perName: " + t(0)+" dogName: " + t(1) + " perAge:"+ t(2)+ " dogAge:"+ t(3)).collect().foreach(println) } }
people.txt
aaa,11 bbb,22 ccc,33 ddd,44
dog.txt
eee,11 fff,22 ggg,33 ddd,44
perName: aaa dogName: eee perAge:11 dogAge:11 perName: bbb dogName: fff perAge:22 dogAge:22 perName: ccc dogName: ggg perAge:33 dogAge:33 perName: ddd dogName: ddd perAge:44 dogAge:44
相关推荐
- **动手实战**:通过具体的例子和实践项目来加深对Spark SQL的理解。 - 例如,创建DataFrame、执行SQL查询、使用DataFrame API进行数据处理等。 - 实践过程中需要注意的数据类型转换、性能优化等问题也是重要的...
这个"spark-windows helloworld入门例子"是专为Windows用户设计的,旨在帮助初学者快速理解和掌握Spark的基本用法。 首先,我们需要了解Spark的核心概念。Spark的核心在于它的弹性分布式数据集(Resilient ...
本资源为 Spark 编程指南简体中文版,涵盖了 Spark 的基本概念、数据处理、流处理、图形处理和 SQL 等方面的内容。以下是该资源中的知识点总结: Spark 基础 * Spark Shell:交互式 shell,用于快速上手 Spark * ...
"Spark github源码 例子很有价值"这个标题表明,通过分析这些源码,我们可以学习到Spark如何实现其核心功能,如弹性分布式数据集(RDD)、DataFrame、Dataset以及Spark SQL等。 描述中提到"github无法下载的可以直接...
在这个"阿里云EMR spark kafka redis MongoDB例子demo"中,我们看到了如何整合这些技术,构建一个实时数据处理系统,从Kafka获取数据,利用Spark Streaming进行实时分析,然后将结果存储到Redis和MongoDB,实现了...
Spark SQL是Apache Spark的一部分,它提供了一种交互式的方式来处理数据,使得数据分析人员可以像使用SQL一样操作分布式数据。在Spark SQL中,DataFrame是主要的数据结构,它支持各种数据源的读取和写入操作。本篇...
在进行CRUD操作时,可以使用Spark SQL API对DataFrame进行操作。例如,创建一个新的记录: ```java // 创建一个新纪录 StructType schema = DataTypes.createStructType(Arrays.asList( DataTypes....
项目中的例子会展示如何使用Spark SQL执行复杂的数据分析任务,如Join、GroupBy、Window函数等。 六、Spark Streaming实时处理 Spark Streaming构建在Spark Core之上,可以处理来自多种数据源的实时流数据。项目中...
2. **Spark SQL**:Spark SQL是Spark用于处理结构化数据的模块,它可以与Hive、HBase等传统数据仓库集成,并支持SQL查询。Spark SQL引入了DataFrame和Dataset API,使得数据处理更加面向对象,同时保持了高性能。 3...
Spark的核心组件包括Spark SQL、Spark Streaming、MLlib(机器学习库)和GraphX(图计算)。例如,你可以看到以下类型的示例: 1. **Word Count**:基础的分布式计算示例,统计文本文件中每个单词的出现次数。 2. ...
总结来说,“spark-3.2.0-bin-hadoop3-without-hive”是一个专注于 Spark 与 Hadoop 3 基础集成的版本,它提供了最新的 Spark 特性,如优化的 SQL 引擎和 DataFrame API,同时也兼容 Hadoop 3 的诸多改进。...
Spark SQL支持通过SQL语句或者DataFrame API来查询数据,这两种方式都能够提供高性能的数据处理能力。 #### JDBC/ODBC连接 除了使用Spark SQL之外,还可以通过JDBC或ODBC连接来访问各种关系型数据库。这种方式下,...
1、项目中全面覆盖了Spark Core、Spark SQL和Spark Streaming这三个技术框架几乎全部的初级和高级的技术点和知识点, 让学员学以致用,通过一套课程,即掌握如何将Spark所有的技术点和知识点应用在真实的项目中,来...
该项目包括多个用于Spark SQL的成本模型,以及一个用于分析Spark SQL查询/ DataFrame的成本的库。 例子 val spark = SparkSession .builder() .master( " local " ) .appName( " CostAnalyzerExample " ) ....
2. **Spark SQL**:用于结构化数据处理,支持SQL查询,并能轻松处理结构化和半结构化的数据。 3. **Spark Streaming**:实现对实时数据流的处理,可以将实时数据流分割成一系列小批次,然后用Spark Core进行处理。 4...
- **数据源**:介绍如何使用不同的数据源与Spark SQL进行交互,包括CSV、JSON、Parquet文件等。 - **Hive表**:说明如何在Spark SQL中使用Hive表,并解释Hive元数据和表结构的兼容性。 - **性能调优**:提供了一系列...
1. Word Count:Spark最经典的例子,用于统计文本中单词出现的次数。展示了RDD的基本操作,如map、reduceByKey和count。 2. 数据加载与保存:演示如何从HDFS、Cassandra、Hive等数据源读取数据,以及如何将结果写回...
例子中定义了多个List数据集合,包括用户信息,订单信息,用户订单信息,将List对象生成DataFrame,使用SparkSQL查询将多个DataFrame合成一个DataFrame,使用Scala语言编写。
通过这些例子,你可以学习如何创建数据处理项目,如何在Spark中运行SQL查询,以及如何在Hive中创建表和执行数据分析任务。 总之,Eclipse集成Hadoop、Spark和Hive提供了一个高效的数据开发环境,让你能够利用大数据...
本示例中的"spark提交jdbc到pgsql测试代码"旨在演示如何利用Python编程语言和Spark的SQL接口来实现这一功能。我们将深入探讨相关知识点。 首先,`spark_jdbc_pgsql.py`是主要的Python脚本文件,它包含了一个使用...