Spark
文章平均质量分 76
willyan2007
这个作者很懒,什么都没留下…
展开
-
Livy调度Spark任务
安装配置LIVY下载首页:https://livy.incubator.apache.org/下载:https://livy.incubator.apache.org/download/下载文件apache-livy-0.7.0-incubating-bin.zip配置解压后的目录结构配置文件在conf目录下先用mv 命令生成红框中两个文件livy.conf改如下三个地方Spark master配置yarn,表示执行SparkOnYarn模式。原创 2021-05-14 15:06:14 · 539 阅读 · 0 评论 -
Spark2.3.2-单节点伪分布式OnYarn测试
下载spark-2.3.2-bin-hadoop2.7.tgz设置环境变量修改配置cd $SPARK_HOME/confcp spark-env.sh.template spark-env.shvim spark-env.sh注意:由于是On Yarn的配置,无需配置worker、slaves这些启动spark-shell根据启动日志,spark-shell启动的本地模式,不是OnYarn的模式。我们查看Hadoop ResoureManager的界面,没原创 2021-05-14 14:53:49 · 350 阅读 · 0 评论 -
Idea引入Spark源码
1. 下载spark版本对应的源码程序包,官网下载 见下图:下载的是1.6.1版本的,soucecode是源码包类型。下载得到spark-1.6.1.tgz的文件。2. 在idea中开某个spark程序。 见右上角有个“attachsouces”的按钮 3. 将1中下载的包解压,点击2中的“attach souces”,引入下载的源码即可。点击ok 完成。...原创 2018-02-12 16:08:45 · 1932 阅读 · 0 评论 -
Idea打包Saprk程序
一、入口程序说明:Spark程序入口,是一个object型scala程序,Main方法是程序入口。SparkConf、SparkContext、SparkContext等对象,都要在main方法的作用域内。 二、Idea配置打包信息Idea菜单,File => Project Structure => Artifacts => 绿色“+” => jar => Empt...原创 2018-02-12 16:03:21 · 389 阅读 · 0 评论 -
CombineBykey实现distinct和groupby
//combineBykey既能实现distinct,也能实现groupby,原因见下:val rdd2: RDD[(String, Set[String])] = rdd1. map(x => (x.phone_no + x.wifi, x.lat + split + x.lng)). partitionBy(wifi_part). combineByKey( (it: S原创 2018-01-30 12:26:48 · 291 阅读 · 0 评论 -
Spark优化操作_自定义groupby
groupby或者groupbyKey算子效率太低,自己重写了一下。//用combineByKey替代groupByval home_data_combine: RDD[(String, List[home_info])] = phone_date_key_data. map(home => (home.phone_date, home)). partitionBy(new or原创 2017-12-22 17:30:22 · 3027 阅读 · 0 评论 -
Spark笛卡尔积实现方案描述
//val pairs = sc.parallelize(Array(("a", Vectors.dense(1)), ("b", Vectors.dense(2)), ("c", Vectors.dense(3)) ))val pairs = sc.parallelize(List("a", "b", "c"))//1.默认算子,性能尚可,但简易可用val cartesian_rdd =原创 2018-01-22 19:43:25 · 4957 阅读 · 0 评论 -
Scala获取连续两次上报的LBS
//应用场景,用时间排序,获取连续两次上报的LBS的时间间隔、距离//一次循环,实现获取当前对象、当前对象下一个对象的遍历//在Rdd内部,map操作时,用while获取两次上报的LBSval array = Array("a","b","c","d","e")var i = 0var length = array.lengthimport scala.collection.m原创 2017-12-28 13:53:36 · 185 阅读 · 0 评论 -
key-value型Rdd转广播变量时注意
当将一个(key,value)型Rdd转成广播变量时,需要将该Rdd转成Map类型,但是若一个key对应多个value,直接使用collectAsMap()方法时,key值相同的value会被覆盖,所以不能直接使用collectAsMap()方法。那怎么办了?应该使用collect() + foldLeft()的方式,组成mutable.HashMap对象。collect()将Rdd转成A原创 2017-12-27 19:55:22 · 557 阅读 · 0 评论 -
Spark广播变量的使用
//landscape_zb变量格式:mutable.HashMap[String, ArrayBuffer[Any]]//单个landscape对象的格式 (new_key,(ls_id, lat, lon)),用ArrayBuffer将多组lat, lon组合起来var bc_landscape_zb = sc.broadcast(landscape_zb)val bc_landsca原创 2018-01-02 15:42:31 · 2158 阅读 · 0 评论 -
Spark程序模块化的处理
import org.apache.spark.sql.hive.HiveContextimport org.apache.spark.sql.Rowimport org.apache.spark.sql.types.{DoubleType, StringType, StructField, StructType}import org.apache.spark.{SparkConf, Sp...原创 2017-12-28 13:48:21 · 322 阅读 · 0 评论 -
Spark优化操作_自定义distinct
因为默认的distinct算子操作效率太低,自己改写一下。def mydistinct(iter: Iterator[(String, Int)]): Iterator[String] = { iter.foldLeft(Set[String]())((CurS, item) => CurS + item._1).toIterator}原创 2017-12-22 17:06:47 · 2926 阅读 · 3 评论