`

spark SQL例子

阅读更多

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

 print

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实战高手之路-第6章Spark SQL编程动手实战(1)

    - **动手实战**:通过具体的例子和实践项目来加深对Spark SQL的理解。 - 例如,创建DataFrame、执行SQL查询、使用DataFrame API进行数据处理等。 - 实践过程中需要注意的数据类型转换、性能优化等问题也是重要的...

    spark-windows helloword入门例子

    这个"spark-windows helloworld入门例子"是专为Windows用户设计的,旨在帮助初学者快速理解和掌握Spark的基本用法。 首先,我们需要了解Spark的核心概念。Spark的核心在于它的弹性分布式数据集(Resilient ...

    Spark 编程指南简体中文版.pdf

    本资源为 Spark 编程指南简体中文版,涵盖了 Spark 的基本概念、数据处理、流处理、图形处理和 SQL 等方面的内容。以下是该资源中的知识点总结: Spark 基础 * Spark Shell:交互式 shell,用于快速上手 Spark * ...

    Spark github源码 例子很有价值

    "Spark github源码 例子很有价值"这个标题表明,通过分析这些源码,我们可以学习到Spark如何实现其核心功能,如弹性分布式数据集(RDD)、DataFrame、Dataset以及Spark SQL等。 描述中提到"github无法下载的可以直接...

    阿里云emr spark kafka redis MongoDB例子demo

    在这个"阿里云EMR spark kafka redis MongoDB例子demo"中,我们看到了如何整合这些技术,构建一个实时数据处理系统,从Kafka获取数据,利用Spark Streaming进行实时分析,然后将结果存储到Redis和MongoDB,实现了...

    Spark SQL数据加载和保存实例讲解

    Spark SQL是Apache Spark的一部分,它提供了一种交互式的方式来处理数据,使得数据分析人员可以像使用SQL一样操作分布式数据。在Spark SQL中,DataFrame是主要的数据结构,它支持各种数据源的读取和写入操作。本篇...

    spark 连接 mongodb 使用例子

    在进行CRUD操作时,可以使用Spark SQL API对DataFrame进行操作。例如,创建一个新的记录: ```java // 创建一个新纪录 StructType schema = DataTypes.createStructType(Arrays.asList( DataTypes....

    learning-spark-examples-master

    项目中的例子会展示如何使用Spark SQL执行复杂的数据分析任务,如Join、GroupBy、Window函数等。 六、Spark Streaming实时处理 Spark Streaming构建在Spark Core之上,可以处理来自多种数据源的实时流数据。项目中...

    spark高级数据分析源代码.zip

    2. **Spark SQL**:Spark SQL是Spark用于处理结构化数据的模块,它可以与Hive、HBase等传统数据仓库集成,并支持SQL查询。Spark SQL引入了DataFrame和Dataset API,使得数据处理更加面向对象,同时保持了高性能。 3...

    spark-2.0.1集群安装及编写例子提交任务

    Spark的核心组件包括Spark SQL、Spark Streaming、MLlib(机器学习库)和GraphX(图计算)。例如,你可以看到以下类型的示例: 1. **Word Count**:基础的分布式计算示例,统计文本文件中每个单词的出现次数。 2. ...

    spark-3.2.0-bin-hadoop3-without-hive

    总结来说,“spark-3.2.0-bin-hadoop3-without-hive”是一个专注于 Spark 与 Hadoop 3 基础集成的版本,它提供了最新的 Spark 特性,如优化的 SQL 引擎和 DataFrame API,同时也兼容 Hadoop 3 的诸多改进。...

    Spark数据库百度云02.txt

    Spark SQL支持通过SQL语句或者DataFrame API来查询数据,这两种方式都能够提供高性能的数据处理能力。 #### JDBC/ODBC连接 除了使用Spark SQL之外,还可以通过JDBC或ODBC连接来访问各种关系型数据库。这种方式下,...

    Spark大型项目实战:电商用户行为分析大数据平台开发实战

    1、项目中全面覆盖了Spark Core、Spark SQL和Spark Streaming这三个技术框架几乎全部的初级和高级的技术点和知识点, 让学员学以致用,通过一套课程,即掌握如何将Spark所有的技术点和知识点应用在真实的项目中,来...

    SparkSQLCostAnalyzer

    该项目包括多个用于Spark SQL的成本模型,以及一个用于分析Spark SQL查询/ DataFrame的成本的库。 例子 val spark = SparkSession .builder() .master( " local " ) .appName( " CostAnalyzerExample " ) ....

    sparkspark

    2. **Spark SQL**:用于结构化数据处理,支持SQL查询,并能轻松处理结构化和半结构化的数据。 3. **Spark Streaming**:实现对实时数据流的处理,可以将实时数据流分割成一系列小批次,然后用Spark Core进行处理。 4...

    spark-programming-guide(Spark 编程指南)-高清文字版

    - **数据源**:介绍如何使用不同的数据源与Spark SQL进行交互,包括CSV、JSON、Parquet文件等。 - **Hive表**:说明如何在Spark SQL中使用Hive表,并解释Hive元数据和表结构的兼容性。 - **性能调优**:提供了一系列...

    Spark各种demo学习

    1. Word Count:Spark最经典的例子,用于统计文本中单词出现的次数。展示了RDD的基本操作,如map、reduceByKey和count。 2. 数据加载与保存:演示如何从HDFS、Cassandra、Hive等数据源读取数据,以及如何将结果写回...

    SparkSQ操作DataFrame,合并DataFrame

    例子中定义了多个List数据集合,包括用户信息,订单信息,用户订单信息,将List对象生成DataFrame,使用SparkSQL查询将多个DataFrame合成一个DataFrame,使用Scala语言编写。

    eclipse集成hadoop+spark+hive开发源码实例

    通过这些例子,你可以学习如何创建数据处理项目,如何在Spark中运行SQL查询,以及如何在Hive中创建表和执行数据分析任务。 总之,Eclipse集成Hadoop、Spark和Hive提供了一个高效的数据开发环境,让你能够利用大数据...

    spark提交jdbc到pgsql测试代码

    本示例中的"spark提交jdbc到pgsql测试代码"旨在演示如何利用Python编程语言和Spark的SQL接口来实现这一功能。我们将深入探讨相关知识点。 首先,`spark_jdbc_pgsql.py`是主要的Python脚本文件,它包含了一个使用...

Global site tag (gtag.js) - Google Analytics