BigData学习
come on
SY_Pistachio
低调的前行,越努力越幸运!
展开
-
spark编程10——经纬度和距离之间的转化:由两个经纬度点求它们之间的距离
//TODO 计算经纬度之间距离的函数 def Distance(x1: Double, y1: Double, x2: Double, y2: Double): Double = { //用haversine公式计算球面两点间的距离。 //经纬度转换成弧度 val lon1: Double = x1 * math.Pi / 180//经度(大) val lat1: Double = y1 * math.Pi / 180//纬度(小) val l...原创 2022-04-08 20:38:52 · 2622 阅读 · 0 评论 -
spark编程09——设置spark-submit提交程序时不在控制台打印日志信息+nohup 命令
在用spark-submit提交程序时,会打印很多类似图片所示的日志信息,它们会把想要的结果给淹没,所以要想法去除控制台的日志信息。解决办法:程序中设置日志级别,然后将运行结果保存在nohup.out文件中//程序中导入import org.apache.log4j.{Level, Logger}//下面两行代码放在main函数里Logger.getLogger("org.apache.spark").setLevel(Level.WARN)Logger.getLogge..原创 2022-04-08 16:00:43 · 3396 阅读 · 0 评论 -
spark编程ERROR02——java.lang.OutOfMemoryError: Java heap space
遇到这个错误,是因为数据量太大,Executor内存不够。改进:增加per Executor的内存nohup spark-submit --class "com.sparkcore.dataQuality.dataExploration.data_exploration_7.Code_Test" --master spark://10.10.10.10:7077 --total-executor-cores 24 --executor-memory 3G --driver-memory 3G.原创 2022-04-08 14:39:32 · 2616 阅读 · 0 评论 -
spark编程ERROR01——java.lang.NullPointerException
IDEA中运行spark程序,发现datafram可以进行df.show() 但是只要df.count() 就会显示下面的异常信息:2022-03-25 17:56:13,691 ERROR executor.Executor: Exception in task 14.0 in stage 7.0 (TID 222)java.lang.NullPointerException at $line33.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.$a.原创 2022-03-25 11:12:25 · 3766 阅读 · 0 评论 -
spark编程08——关于数据清洗中的时间日期格式(三)
统一日期格式+统一路线名+UDF函数使用日期格式 日期类型 统一格式 2021/11/16 2021-11-16 2021年11月16号 2021-11-16 2021年11月16日 2021-11-16 11月16日 2021-11-16 11-16 2021-11-16 //TODO 日期格式转换 def replaceDate2(date:String):String={ var ansDate = da.原创 2022-03-19 16:35:02 · 2405 阅读 · 0 评论 -
spark编程07——关于数据清洗中的时间格式(二)
关于那些年遇到的杂七杂八时间数据:数据问题 数据类型 处理后格式 HH: MM(:后面有空格) HH:MM HH.MM HH:MM HHMM HH:MM HH:MM HH:MM 8 08:00 6 06:00 21 21:00 22 22:00 def replaceTime3(time:String):String={ var ansTime = time if(time.c.原创 2022-03-19 10:54:51 · 2246 阅读 · 0 评论 -
关于HDFS常用的一些命令
注:hadoop fs 具体命令 与 hdfs dfs 具体命令 是等价的1.输出某个命令的的参数:hadoop fs -help rm2.创建文件夹:hadoop fs -mkdir /sanguo3.从本地上传到HDFS上:hadoop fs -put weiguo.txthadoop fs -copyFromLocal weiguo.txt4.从HDFS上下载:hadoop fs -get /sanguo/weiguo.txt ./hadoop ..原创 2022-03-18 21:37:22 · 449 阅读 · 0 评论 -
spark编程06——关于本地运行spark程序和打包到集群中运行的区别
如果本地运行就用:val sparkConf=new SparkConf().setMaster("local").setAppName("spark_timeShift")如果打包到集群中运行就是:val sparkConf=new SparkConf().setMaster("spark://10.10.10.117:7077").setAppName("park_timeShift")(如何在IDEA中打包见:spark编程01——IDEA创建项目打包到集群中运行)imp..原创 2022-03-18 21:03:53 · 490 阅读 · 0 评论 -
spark编程05——本地访问Spark集群(StandAlone模式)和sparkSession常用配置
以下代码用IDEA直接访问spark集群运行(地址是随便写的虚拟地址)注意:一定要确保spark的版本和集群spark的版本保持一致,集群版本是3.2.0所以如果IDEA中不是3.2.0的话,修改pom.xml文件:<dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>sp.原创 2022-03-18 20:49:40 · 1290 阅读 · 0 评论 -
spark编程04——关于数据清洗中的各种常见时间格式转换
一.时间戳转化为日期格式: val time="1622457251089" //TODO 时间转换函数:时间戳 1622457251089 def replaceTime1(tm:String) :String= { import java.text.SimpleDateFormat val sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") val format: String = sf.forma.原创 2022-03-18 20:34:33 · 1376 阅读 · 0 评论 -
spark编程03——RDD并行度与分区
默认情况下,Spark可以将一个作业切分多个任务后,发送给Executor节点并行计算,而能够并行计算的任务数量我们称之为并行度,这个数量可以在构建RDD时指定。1.从内存中读取:数据可以按照并行度的设定进行数据的分区操作,数据分区规则的Spark核心源码如下:def positions(length: Long, numSlices: Int): Iterator[(Int, Int)] = { (0 until numSlices).iterator.map { i => .原创 2022-03-06 16:16:13 · 1659 阅读 · 0 评论 -
spark编程02——spark中RDD的创建
创建RDD的方式可分为四种:1.从集合(内存)中创建2.从外部存储(文件)中创建:本地/HDFS3.从其它RDD创建,一个RDD运算完成后产生新的RDD4.直接创建RDD(new)import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object spark02_rdd_create { def main(args: Array[String]): Unit = { .原创 2022-03-06 15:41:43 · 1415 阅读 · 0 评论 -
spark编程01——IDEA创建项目打包到集群中运行
一.IDEA打包过程:1.新建一个测试程序:package com.sparkcoreimport org.apache.spark.{SparkConf, SparkContext}import scala.math.randomobject Test_jar { def main(args: Array[String]): Unit = { val spark = new SparkContext(new SparkConf().setAppName("SparkPi02".原创 2022-03-03 21:50:25 · 2190 阅读 · 0 评论 -
spark编程00——IDEA创建spark项目
说明:spark版本:3.0.3scala版本:2.12.11一.创建Maven项目,增加scala插件:新建一个Maven项目,版本号1.0.0,然后下一步中的项目名和Artifactid中名称一样。然后在main.java下新建包com.sparkcore:为项目添加scala-sdk,使之拥有scala环境:下面为项目添加框架支持:在Add Frameworks Support中勾选scala验证scala是否成功,编写一个scala程序验证...原创 2022-02-28 20:40:09 · 2020 阅读 · 0 评论 -
scala学习3-普通 WordCount 案例
package scala.ssy.Learning.Sixobject Test_CommmonWordCount { def main(args: Array[String]): Unit = { val stringList=List( "hello", "hello world", "hello scala", "hello spark from scala", "hello flink from scala..原创 2021-10-20 17:02:12 · 145 阅读 · 0 评论 -
scala学习2-集合 计算高级函数
一.说明:1.过滤 :遍历一个集合并从中获取满足指定条件的元素组成一个新的集合2.映射(map):将集合中的一个每一个元素映射到某一函数3.扁平化:将多个List[List[Int]]这样的一个集合打散,变成一个单一的List集合4.扁平化+映射::flatMap 相当于先进行 map 操作,在进行 flatten 操作 集合中的每个元素的子元素映射到某个函数并返回新集合5.分组(group):按照指定的规则对集合元素进行分组,返回一个Map6.规约(reduce):通过指定的逻辑.原创 2021-10-20 16:56:08 · 238 阅读 · 0 评论 -
Scala的学习1-数组和集合类型的总结
一数组:1.不可变数组: 定义:val arr1 = new Array[Int](10)val arr1 = Array(1, 2)增加元素: val arr1=Array(1,2,3,4) val arr2: Array[Int]=arr1 :+ 5 //数组后面添加元素 val arr3: Array[Int]=0 +: arr2 //数组前面增加元素2.可变数组:定义:import scala.collection.mutable.A..原创 2021-10-20 15:37:53 · 132 阅读 · 0 评论 -
配置集群的时候会用到的脚本(作用:实现文件多节点的一次分发)
#!/bin/bash#1. 判断参数个数if [ $# -lt 1 ]then echo Not Enough Arguement! exit;fi#2. 遍历集群所有机器for host in westgis666 westgis777等所有机器名doecho ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 .原创 2021-10-19 17:50:21 · 181 阅读 · 0 评论 -
实验课-用集群运行自带的wordcount程序(Hadoop基础-提交wordcount应用程序)
1.首先确保mapred-site.xml里面有以下配置内容:<property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property> <name>mapreduce.map.env</name> &...原创 2021-10-19 17:37:41 · 282 阅读 · 0 评论 -
hadoop1.0和hadoop2.0的对比
Hadoop1.0包含两个核心组件,分别是HDFS和MapReduce。Hadoop2.0在Hadoop1.0基础之上增加了独立的集群资源管理组件Yarn。Yarn不仅可以为MapReduce提供资源管理服务,也可以为MPI、Storm、Spark和Flink等计算框架提供资源管理服务。对比项目 MapReduce Yarn 角色 JobTracker TaskTracker (执行程序时添加MapTask和ReduceTask) .原创 2021-10-17 21:43:59 · 1655 阅读 · 0 评论 -
第一次实验课作业(完成一个程序,程序功能是从班级成绩中选择分数最高的前N位同学。)
完成一个程序,程序功能是从班级成绩中选择分数最高的前N位同学。具体要求如下:1、使用java或python编程语言实现;2、输入数据可以位txt或csv格式,三个字段分别为:姓名,学号,数据结构成绩;3、定义topN函数,该函数的形式为int TopN(inputdir,outputpath)。函数调用成功返回1,失败返回0;inputdir为输入数据所在文件夹(可以处理多个输入文件);outputpath为输出结果保存路径4、在linux环境下使用命令行编译源代码,生成可执行文件****.jar原创 2021-10-12 19:11:34 · 153 阅读 · 0 评论 -
Linux: 将Java程序打包为jar包,并且在linux上运行
1.先编译java文件,生成.class,命令是:javac helloWorld.java2.MANIFEST.MF文件(清单文件):2.1 MANIFEST.MF文件讲解:当我们用Jar命令打完包后,会在根目录下面创建META-INF目录,该目录下面会有一些对该Jar包信息的描述,其中肯定会有一个MANIFEST.MF文件,该文件包含了该Jar包的版本、创建人和类搜索路径等信息,当然如果是可执行Jar包,会包含Main-Class属性,表明Main方法入口。2.2常见属性:M.原创 2021-10-12 15:58:07 · 2489 阅读 · 0 评论 -
软件工程实践者的研究方法第八版课后答案整理
软件工程实践者的研究方法第八版课后答案整理:1.中文汇总版链接2.由于中文汇总版,有的答案不太全,找到每一章单独的课后答案,这里只列举第三章(点击),其余章节也在博主文章中。(在网上找了好多版本,这个比较好,保存下来链接,方便自己下次看)...原创 2021-03-15 21:55:13 · 6926 阅读 · 0 评论 -
使用JUnit进行白盒测试
点击转到转载 2019-05-14 14:53:06 · 800 阅读 · 0 评论