大数据入门之Spark快速入门及导入数据,求平均值

运行环境

本文的具体运行环境如下:

  • CentOS 7.6
  • Spark 2.4
  • Hadoop 2.6.0
  • Java JDK 1.8
  • Scala 2.10.5

一、下载安装

首先在官网

https://spark.apache.org/downloads.html

下载对应版本的Spark

丢到你的服务器上 自己的路径 比如 /user/hadoop/My_Spark

解压

  tar -xvf XXX.tar.gz(你的压缩包名称)

然后 记录你的 路径  /user/hadoop/My_Spark/spark-2.4.0-bin-hadoop2.7

配置spark用户权限

  sudo chown -R hadoop:hadoop ./spark # 此处的 hadoop 为你的用户名 ./spark为你的路径名

安装后,需要在 ./conf/spark-env.sh 中修改 Spark 的 Classpath,执行如下命令拷贝一个配置文件:

  1. cd /user/hadoop/My_Spark/spark-2.4.0-bin-hadoop2.7
  2. cp ./conf/spark-env.sh.template ./conf/spark-env.sh

编辑 ./conf/spark-env.sh(vim ./conf/spark-env.sh) ,在最后面加上如下一行:

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

保存后,Spark 就可以启动运行了。

当然 还少不了设置环境变量

  vi ~/.bash_profile

在最后加入

  # spark
  export SPARK_HOME= (你的Spark路径)
  export PATH=$PATH:$SPARK_HOME/bin

运行 Spark 示例

注意,必须安装 Hadoop 才能使用 Spark,但如果使用 Spark 过程中没用到 HstudentS,不启动 Hadoop 也是可以的。此外,接下来教程中出现的命令、目录,若无说明,则一般以 Spark 的安装目录(/usr/local/spark)为当前路径,请注意区分。

在 ./examples/src/main 目录下有一些 Spark 的示例程序,有 Scala、Java、Python、R 等语言的版本。我们可以先运行一个示例程序 SparkPi(即计算 π 的近似值),执行如下命令:

  1. cd /user/hadoop/My_Spark/spark-2.4.0-bin-hadoop2.7 #你的路径
  2. ./bin/run-example SparkPi

通过 Spark Shell 进行交互分析

Spark shell 提供了简单的方式来学习 API,也提供了交互的方式来分析数据。Spark Shell 支持 Scala 和 Python,本教程选择使用 Scala 来进行介绍。

Scala

Scala 是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。Scala 运行于 Java 平台(JVM,Java 虚拟机),并兼容现有的 Java 程序。

Scala 是 Spark 的主要编程语言,如果仅仅是写 Spark 应用,并非一定要用 Scala,用 Java、Python 都是可以的。使用 Scala 的优势是开发效率更高,代码更精简,并且可以通过 Spark Shell 进行交互式实时查询,方便排查问题。

执行如下命令启动 Spark Shell:

  1. ./bin/spark-shell

Shell 命令

启动成功后如图所示,会有 “scala >” 的命令提示符。

成功启动Spark Shell

基础操作

Spark 的主要抽象是分布式的元素集合(distributed collection of items),称为RDD(Resilient Distributed Dataset,弹性分布式数据集),它可被分发到集群各个节点上,进行并行操作。RDDs 可以通过 Hadoop InputFormats 创建(如 HstudentS),或者从其他 RDDs 转化而来。

我们从本地路径读取一个预先准备好的student.txt文件

student.txt 文件内容如下 有四个字段 id name age score

在交互式窗口中输入  

  

import org.apache.spark.sql.types._import org.apache.spark.sql.SparkSessionval spark=SparkSession.builder().getOrCreate()val student = spark.read.option("header", true).option("delimiter",",").csv("file:///user/hadoop/run/student.txt")

这里student是 spark的一个DataFrameReader 也就是RDD DataFrame 通过读取本地文件获得的。

整个相当于一个临时的表

我们这里以CSV格式读入 分隔符为 , 然后首行开启

代码中通过 “file://” 前缀指定读取本地文件。Spark shell 默认是读取 HstudentS 中的文件,需要先上传文件到 HstudentS 中,否则会有“org.apache.hadoop.mapred.InvalidInputException: Input path does not exist:”的错误。

DataFrame基本动作运算

show展示数据

可以用show() 方法来展示数据,show有以下几种不同的使用方式:

show():显示所有数据

show(n) :显示前n条数据

show(true): 最多显示20个字符,默认为true

show(false): 去除最多显示20个字符的限制

show(n, true):显示前n条并最多显示20个自负

student.show()
student.show(3)
student.show(true)
student.show(false)
student.show(3,true)

输入

student.show(student.count().toInt)

按成绩倒序排序输出

输入

 student.sort(student("score").desc).show(student.count().toInt)

describe(cols: String*):获取指定字段的统计信息

这个方法可以动态的传入一个或多个String类型的字段名,结果仍然为DataFrame对象,用于统计数值类型字段的统计值,比如count, mean, stddev, min, max等。

求平均分数并输出

单个DataFrame操作

使用where筛选条件

where(conditionExpr: String):SQL语言中where关键字后的条件 ,传入筛选条件表达式,可以用and和or。得到DataFrame类型的返回结果, 比如我们想得到用户1或者使用助手1的操作记录:

student.where("user=1 or type =‘助手1‘").show()

或者如上图

student.describe("score").where("summary =‘mean‘").show()

select:获取指定字段值

根据传入的String类型字段名,获取指定字段的值,以DataFrame类型返回,比如我们想要查找user和type两列:

student.select("user","type").show()

其他的常用操作自己看文档就行,女加微信男自强。本次教程暂时到此结束。

退出

:quit

原文地址:https://www.cnblogs.com/baiyunwanglai/p/10243454.html

时间: 2024-10-05 04:19:26

大数据入门之Spark快速入门及导入数据,求平均值的相关文章

OpenGL入门【1 快速入门】

www.qdmm.com/BookReader/1845423,31051137.aspx www.qdmm.com/BookReader/1845423,31073665.aspx www.qdmm.com/BookReader/1845423,31088923.aspx www.qdmm.com/BookReader/1845423,31104070.aspx www.qdmm.com/BookReader/1845423,31114804.aspx www.qdmm.com/BookRea

大数据Hadoop学习之快速入门方法

1.Hadoop生态概况 Hadoop是一个由Apache基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的威力来进行高速运算与存储,具有可靠.高效.可伸缩的特点 Hadoop的核心是YARN,HDFS,Mapreduce,常用模块架构如下 ? 我还是要推荐下我自己创建的大数据资料分享群142973723,这是大数据学习交流的地方,不管你是小白还是大牛,小编都欢迎,不定期分享干货,包括我整理的一份适合零基础学习大数据资料和入门教程. 2.HDF

大数据学习之Hadoop快速入门

1.Hadoop生态概况 Hadoop是一个由Apache基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的威力来进行高速运算与存储,具有可靠.高效.可伸缩的特点.大数据学习资料分享群119599574 Hadoop的核心是YARN,HDFS,Mapreduce,常用模块架构如下 2.HDFS 源自谷歌的GFS论文,发表于2013年10月,HDFS是GFS的克隆版,HDFS是Hadoop体系中数据存储管理的基础,它是一个高度容错的系统,能检测和

d3.js:数据可视化利器之快速入门

hello,data! 在进入d3.js之前,我们先用一个小例子回顾一下将数据可视化的基本流程. 任务 用横向柱状图来直观显示以下数据: var data = [10,15,23,78,57,29,34,71]; 简单地思考一下,要完成这个任务有两个问题需要解决: 用什么可视元素来表现横向柱? 数据对应到可视元素的什么属性? 这个不算困难,我们使用HTML的DIV元素来实现,代码参见http://www.hubwiz.com/course/54fd40cfe564e50d50dcf284/:快速

spark快速入门与WordCount程序机制深度解析 spark研习第二季

2.spark wordCount程序深度剖析 标签: spark 一.Eclipse(scala IDE)开发local和cluster (一). 配置开发环境 要在本地安装好java和scala. 由于spark1.6需要scala 2.10.X版本的.推荐 2.10.4,java版本最好是1.8.所以提前我们要需要安装好java和scala并在环境变量中配置好. 下载scala IDE for eclipse安装 连接:http://scala-ide.org/download/sdk.h

spring mvc入门教程(快速入门,深入分析)

目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如jpg,js,css 八.spring mvc 请求如何映射到具体的Action中的方法 九.spring mvc 中的拦截器: 十.spring mvc 如何使用拦截器 十一.sprin

Daydream从入门到精通——快速入门开发基础教程二:Android端开发环境配置二

开始部署 上篇介绍了开发Daydream Android VR需要的基本环境,这篇我们来看看如何部署和运用官方示例. -------------------------------------------------------------------------------------------------------------------- Daydream快速入门开发基础教程一:Android端开发环境配置一 http://blog.csdn.net/jaikydota163/arti

Maven入门指南 Maven 快速入门及简单使用

Maven入门指南 :Maven 快速入门及简单使用 前言 Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目.主要用于项目构建,依赖管理,项目信息管理. maven项目在编译.测试.打包里,会需要从maven的中央仓库(即:maven组织公布在互联网上的一个站点,里面已经收录了目前绝大多数主流的jar包)下载jar包等文件, 如果使用代理服务器上网,需要配置代理服务器. 理解"仓库" 首次运行完mvn -version后,会在用户目录下创建一个.m

Spark向Elasticsearch批量导入数据,出现重复的问题定位

看了下es-hadoop插件的源码: 发现ES导入数据重试情况的发生,除了在es.batch.write.retry.policy参数默认开启且es-hadoop插件向ES集群发送不bulk写入请求接受到503响应码会重试3次室外. 本身执行http请求时,也会存在重试(hadoop/rest/NetworkClient.java): public Response execute(Request request) { Response response = null; boolean newN