- 博客(290)
- 收藏
- 关注
原创 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
2797
原创 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
3887
原创 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
2808
原创 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
3993
原创 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
2510
原创 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
2293
原创 关于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
500
原创 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
567
原创 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
1506
原创 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
1517
原创 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
1747
原创 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
1568
原创 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
2343
原创 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
2195
原创 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
205
原创 scala学习2-集合 计算高级函数
一.说明:1.过滤 :遍历一个集合并从中获取满足指定条件的元素组成一个新的集合2.映射(map):将集合中的一个每一个元素映射到某一函数3.扁平化:将多个List[List[Int]]这样的一个集合打散,变成一个单一的List集合4.扁平化+映射::flatMap 相当于先进行 map 操作,在进行 flatten 操作 集合中的每个元素的子元素映射到某个函数并返回新集合5.分组(group):按照指定的规则对集合元素进行分组,返回一个Map6.规约(reduce):通过指定的逻辑.
2021-10-20 16:56:08
305
原创 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
180
原创 配置集群的时候会用到的脚本(作用:实现文件多节点的一次分发)
#!/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
226
原创 实验课-用集群运行自带的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
346
原创 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
1820
原创 第一次实验课作业(完成一个程序,程序功能是从班级成绩中选择分数最高的前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
197
原创 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
2900
原创 软件工程实践者的研究方法第八版课后答案整理
软件工程实践者的研究方法第八版课后答案整理:1.中文汇总版链接2.由于中文汇总版,有的答案不太全,找到每一章单独的课后答案,这里只列举第三章(点击),其余章节也在博主文章中。(在网上找了好多版本,这个比较好,保存下来链接,方便自己下次看)...
2021-03-15 21:55:13
7599
原创 2018天梯赛(关于字符串的问题)
PINTIA1.关于字符或字符串,前面有数值的一定用getchar()读走。2.string类型的可以用getline()读一行 string s[111]; cin>>c>>n; getchar(); for(int i=0;i<n;i++) { getline(cin,s[i]); }3.带...
2019-03-22 16:53:24
381
原创 POJ 2010 G - Moo University - Financial Aid(最小化第K大)
G - Moo University - Financial Aid1.题目含义: 奶牛学校招生,c头奶牛报名,要选n头(n为奇数),学校是义务制,所以每头奶牛的学费都由学校负责。每头奶牛都由自己的考试分数和它需要花的学费,学校总共有f的资金,问合法招生方案中中间分数(即排名第(n+1)/2)最高的是多少。#include <iostream>#include &l...
2018-11-08 09:30:46
228
原创 概率——51NOD 1639 绑鞋带
1639 绑鞋带n条鞋带有2*n的端点: 先 任选2个端点有 C( 2*n , 2 ) 即 n * ( 2*n - 1 ) 个,但是这里面含有来自一条鞋带的情况,减去n中,所以符合条件的有 n * ( 2*n - 1 )-n= 2*n * (n-1)种,故而概率为:(2*n * (n-1))/( n * ( 2*n - 1 )) 种 这是一次的,还需要继续执行n-1次。#...
2018-11-01 21:16:20
333
原创 概率DP—— SP1026 FAVDICE - Favorite Dice(洛谷)
SP1026 FAVDICE - Favorite Dice1.题目含义:掷一个n面的骰子,问每一面都被掷到的次数期望是多少。2.思路(by——洛谷):#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath&...
2018-11-01 20:36:49
316
转载 概率&期望的初学
一:概率部分:概率部分就有两种情况,一个单纯求概率的,还有一种就是单纯求概率DP的。1.求概率的就用一些概率的性质直接求解:点击转到
2018-11-01 20:21:59
328
原创 概率DP——UVA12230 Crossing Rivers
UVA12230 Crossing Rivers1.题目大意: 有个人每天要去公司上班,每次会经过N条河,家和公司的距离为D,默认在陆地的速度为1, 给出N条河的信息,包括起始坐标p,宽度L,以及船的速度v。船会往返在河的两岸,人到达河岸时, 船的位置是随机的(往返中)。问说人达到公司所需要的期望时间。2.思路: 2.1,过每条河最坏的情况是t=3*L/v; 即去的时候船刚刚...
2018-11-01 19:27:08
286
原创 组合数——51nod 1120 机器人走方格 V3(卡特兰数)
51nod 1120 机器人走方格 V3卡特兰数介绍#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;typedef long long ll;const long long int mod=...
2018-11-01 16:19:56
260
原创 博弈——poj 2505 A multiplication game
A multiplication game #include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<cstdio>using namespace std;int main(){ long long n; whil...
2018-11-01 15:02:50
244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人