Spark SQL典型案例

这篇具有很好参考价值的文章主要介绍了Spark SQL典型案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实现任务

1、准备数据文件
  • /home目录创建words.txt
    Spark SQL典型案例

hello scala world
hello spark world
scala is very concise
spark is very powerful
let us learn scala and spark
we can learn them well

  • 上传单词文件到HDFS指定目录

hdfs dfs -mkdir p /wordcount/input
hdfs dfs -put words.txt /wordcount/input

2、创建Maven项目
  • 创建Maven项目 - SparkSQLWordCount
    Spark SQL典型案例
3、修改源程序目录

Spark SQL典型案例文章来源地址https://www.toymoban.com/news/detail-485028.html

4、添加依赖和设置源程序目录
  • 在pom.xml文件里添加依赖和设置源程序目录
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.huawei.sql</groupId>
    <artifactId>SparkSQLWordCount</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.12.15</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.12</artifactId>
            <version>3.1.3</version>
        </dependency>
    </dependencies>
    <build>
        <sourceDirectory>src/main/scala</sourceDirectory>
    </build>
</project>

5、创建日志属性文件
  • 在resources目录里创建log4j.properties文件
log4j.rootLogger=ERROR, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spark.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

6、创建HDFS配置文件
  • 在resources目录里创建hdfs-site.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property>
        <description>only config in clients</description>
        <name>dfs.client.use.datanode.hostname</name>
        <value>true</value>
    </property>
</configuration>

7、创建词频统计单例对象
  • 创建net.xxr.sql包,在包里创建WordCount单例对象
package net.xxr.sql


import org.apache.spark.sql.{Dataset, SparkSession}

/**
 * 功能:利用Spark SQL实现词频统计
 */
object WordCount {
  def main(args: Array[String]): Unit = {
    // 创建或得到SparkSession
    val spark = SparkSession.builder()
      .appName("SparkSQLWordCount")
      .master("local[*]")
      .getOrCreate()
    // 读取HDFS上的单词文件
    val lines: Dataset[String] = spark.read.textFile("hdfs://master:9000/wordcount/input/words.txt")
    // 显示数据集lines内容
    lines.show()
    // 导入Spark会话对象的隐式转换
    import spark.implicits._
    // 将数据集中的数据按空格切分并合并
    val words: Dataset[String] = lines.flatMap(_.split(" "))
    // 显示数据集words内容
    words.show()
    // 将数据集默认列名由value改为word,并转换成数据帧
    val df = words.withColumnRenamed("value", "word").toDF()
    // 显示数据帧内容
    df.show()
    // 基于数据帧创建临时视图
    df.createTempView("v_words")
    // 执行SQL分组查询,实现词频统计
    val wc = spark.sql(
      """
        | select word, count(*) as count
        |    from v_words group by word
        |    order by count desc
        |""".stripMargin)
    // 显示词频统计结果
    wc.show()
    // 关闭会话
    spark.close()
  }
}

到了这里,关于Spark SQL典型案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型应用

    近年来遥感技术得到了突飞猛进的发展,航天、航空、临近空间等多遥感平台不断增加,数据的空间、时间、光谱分辨率不断提高,数据量猛增,遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇,同时如何处理好这些数据也提出了巨

    2024年02月06日
    浏览(42)
  • GPT模型应用丨遥感云大数据在灾害、水体与湿地领域典型案例实践

    ​ ​ ​ ​ 第一部分 基础实践 一 平台及基础开发平台 · GEE平台及典型应用案例介绍; · GEE开发环境及常用数据资源介绍; · ChatGPT、文心一言等GPT模型介绍 · JavaScript基础简介; · GEE遥感云重要概念与典型数据分析流程; GEE基本对象介绍、矢量和栅格对象可视化、属性查

    2024年02月15日
    浏览(37)
  • GPT模型应用及遥感云大数据在灾害、水体与湿地领域典型案例展示

     GPT GPT的全称,是Generative Pre-Trained Transformer(生成式预训练Transformer模型)是一种基于互联网的、可用数据来训练的、文本生成的深度学习模型。 GPT与专注于下围棋或机器翻译等某一个具体任务的“小模型”不同,AI大模型更像人类的大脑。它兼具“大规模”和“预训练”两

    2024年02月11日
    浏览(39)
  • GEE/PIE遥感大数据处理与典型案例丨数据整合Reduce、云端数据可视化、数据导入导出及资产管理、机器学习算法等

    目录 ​专题一:初识GEE和PIE遥感云平台 专题二:GEE和PIE影像大数据处理基础 专题三:数据整合Reduce 专题四:云端数据可视化 专题五:数据导入导出及资产管理 专题六:机器学习算法 专题七:专题练习与回顾 更多应用 随着航空、航天、近地空间等多个遥感平台的不断发展

    2024年02月11日
    浏览(58)
  • python典型入门案例,python案例讲解视频

    大家好,本文将围绕python典型入门案例展开说明,python案例讲解视频是一个很多人都想弄明白的事情,想搞清楚python经典案例pdf需要先了解以下几个事情。 今天是2月21日,我开始去跟着书本去写一个python小游戏,没想到一个小游戏,我每天大概看两个小时左右,没想到我写到

    2024年04月11日
    浏览(41)
  • 数字孪生典型应用案例

    数字孪生是大数据、人工智能、物联网等技术的蓬勃背景下,在传统仿真技术基础上衍生的新技术,作为一项虚实结合的数字化转型技术,现阶段正在各个领域加速落地。 随着城市数字模型的扩充与发展,数字孪生技术将覆盖城市的每条电力线、变电站、污水系统、供水和排

    2024年02月12日
    浏览(40)
  • 网络安全应急响应典型案例集

    本文是学习网络安全应急响应典型案例集(2021). 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 数据泄露指将机密信息、私人信息或其他敏感信息发布到不安全的环境中。数据泄露分为外部泄露和内部泄露两种,外部泄露典型如攻击者通过漏洞利

    2024年02月15日
    浏览(29)
  • Python深度学习026:基于Pytorch的典型循环神经网络模型RNN、LSTM、GRU的公式及简洁案例实现(官方)

    循环神经网络(也有翻译为递归神经网络)最典型的三种网络结构是: RNN(Recurrent Neural Network,循环神经网络) LSTM(Long Short-Term Memory,长短期记忆网络) GRU(Gate Recurrent Unit,门控循环单元) 理解参数的含义非常重要,否则,你不知道准备什么维度的输入数据送入模型 先

    2023年04月22日
    浏览(32)
  • C#代码重构的几个典型案例

    前段时间小编检查同事代码,发现居然写的太复杂看不太懂,代码命名不规范,重复冗长代码一堆,这时候就可以通过重构来改进代码的质量。代码重构是提高代码质量和可维护性的关键过程,它旨在通过优化代码结构和设计来提高代码的可读性、可理解性和可扩展性。本文

    2024年02月16日
    浏览(27)
  • 【典型案例】解决idea打不开项目的问题

    前言 今天在使用工作过程中,遇到了一个idea开发工具先关的问题,也是因为解决这个问题耽误了正常搬砖的时间,同时也由于远程办公网速比较卡的原因,导致心情比较心烦气躁,所有针对这个心烦的问题,在这里总结一下,给后续自己提个醒; 问题描述 : 在正常工作中

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包