spark-Scala】的更多相关文章

spark用的是cdh spark-2.0.1 package main.scala import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* Created by tomtang on 2016/12/16. */ object tomhelloworld { def FILE_NAME:String = "word_count_results_" def main(arg…
统计效果: 代码部分: import org.apache.spark.sql.hive.HiveContext import org.apache.spark.{Logging, SparkConf, SparkContext} import org.apache.spark.sql.{DataFrame, Row, SaveMode, _} import com.alibaba.fastjson.{JSON, JSONObject} import org.apache.hadoop.conf…
import org.apache.spark._import SparkContext._import java.util.{Calendar,Properties,Date,Locale}import java.text.SimpleDateFormat import java.math.BigDecimal;import java.math.RoundingMode;import java.text.DecimalFormat;import java.text.NumberFormat;i…
scala集合转化为DS/DF case class TestPerson(name: String, age: Long, salary: Double) val tom = TestPerson(,35.5) val sam = TestPerson(,40.5) val PersonList = mutable.MutableList[TestPerson]() PersonList += tom PersonList += sam val personDS = PersonList.to…
1.利用scala语言开发spark的worcount程序(本地运行) package com.zy.spark import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} //todo:利用scala语言来实现spark的wordcount程序 object WordCount { def main(args: Array[String]): Unit = { //1.创建SparkConf…
环境配置 IDE: https://www.jetbrains.com/idea/ 子雨大数据之Spark入门教程(Scala版) /* implement */ 语言特性 Online compiler: https://scastie.scala-lang.org/ 只记录 “不太一样” 的特性. 一.常量变量 常量 val, 变量 var. 二.循环 var name = "hello" for (n <- name) { println(n) } 嵌套循环,遍历数字和数组…
1.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.apa…
 Spark 版本为 3.0.0,默认采用的 Scala 编译版本为 2.12 1. 创建名为spark-project 的项目  2. 将src 删除,把spark-project 当成一个父项目,并在该项目下创建一个moule ,spark-core (子项目)  2.scala-idea 插件下载安装 https://plugins.jetbrains.com/plugin/1347-scala/versions 选择和idea对应的版本的scala插件 3. 添加scala 插件  4.…
搞清楚几个概念: 闭包 柯里化 搭建了intellij idea 的scala 开发环境…
1. 在生产环境下,很多文件是GBK编码格式的,而SPARK 常用的textFile方法默认是写死了读UTF-8格式的文件,其他格式文件会显示乱码 用如下代码实现读取GBK文件的方法 import org.apache.hadoop.io.{LongWritable, Text}import org.apache.hadoop.mapred.TextInputFormatimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkCo…
1 http://www.cnblogs.com/charlesblc/p/6165201.html [转载]协同过滤 & Spark机器学习实战 2 基于Spark构建推荐引擎之一:基于物品的协同过滤推荐: http://blog.csdn.net/sunbow0/article/details/42737541 3 2017年,你还在用用户画像和协同过滤做推荐系统吗? http://www.infoq.com/cn/articles/user-portrait-collaborative-f…
三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. windows下安装好scala后,直接Ctrl+R,然后在运行命令窗里输入scala,或者输入cmd后,进入命令行在输入scala. 然后我们输入 print("Hello World!") 看下结果: 第一种方式运行完毕. 注意:前两行命令使用了Tab键,可以像bash一样有补全的功能哦! 二.Scala脚本完成HelloWo…
转自:http://www.cnblogs.com/canyangfeixue/p/7227998.html 对于威胁检测算法使用神经网络训练有用!!!TODO待实验 /** * Created by lkl on 2017/7/21. */ //import com.ibm.spark.exercise.util.LogUtils //import com.ibm.spark.exercise.util.LogUtils import org.apache.spark.ml.Pipeline…
https://blog.csdn.net/do_yourself_go_on/article/details/76033252 Spark源码之reduceByKey与GroupByKey      …
[学习笔记] /*reduceByKey(function)reduceByKey就是对元素为KV对的RDD中Key相同的元素的Value进行function的reduce操作(如前所述),因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对. reduceByKey(_+_)是reduceByKey((x,y) => x+y)的一个 简洁的形式*/ val rdd08 = sc.parallelize(List((1, 1),  (1, 4),(1,…
在推荐系统中,协同过滤算法是应用较多的,具体又主要划分为基于用户和基于物品的协同过滤算法,核心点就是基于"一个人"或"一件物品",根据这个人或物品所具有的属性,比如对于人就是性别.年龄.工作.收入.喜好等,找出与这个人或物品相似的人或物,当然实际处理中参考的因子会复杂的多. 本篇文章不介绍相关数学概念,主要给出常用的相似度算法代码实现,并且同一算法有多种实现方式. 欧几里得距离 def euclidean2(v1: Vector, v2: Vector): Doub…
object ScalaApp { def main(args: Array[String]): Unit = { var conf = new SparkConf() conf.setMaster("local") var sc = new SparkContext(conf) val lines: RDD[String] = sc.textFile("./words.txt") lines.flatMap(line=>line.split()).reduc…
[学习笔记] reduceByKey(_+_)是reduceByKey((x,y) => x+y)的一个 简洁的形式*/ val rdd08 = sc.parallelize(List((1, 1),  (1, 4),(1, 3), (3, 7), (3, 5)))    val rdd08_1 = rdd08.reduceByKey((x, y) => x + y)    println("reduceByKey 用法 " + rdd08_1.collect().mkSt…
[学习笔记] reduce将RDD中元素前两个传给输入函数,产生一个新的return值,将新产生的return值与RDD中下一个元素(即第三个元素)组成两个元素,再被传给输入函数,这样递归运作,直到最后只有一个值为止.*/    val rdd07 = sc.parallelize(1 to 10)    val sum = rdd07.reduce((x, y) => x + y)    println("sum is " + sum) 文章转载自原文:https://blog…
目标 配置一个spark standalone集群 + akka + kafka + scala的开发环境. 创建一个基于spark的scala工程,并在spark standalone的集群环境中运行. 创建一个基于spark+akka的scala工程,并在spark standalone的集群环境中运行. 创建一个基于spark+kafka的scala工程,并在spark standalone的集群环境中运行. 集群框架图 本图主要是说明各个组件可以发布到不同的逻辑机器上. GSpark C…
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/IVN4EuFlmKk/优酷:http://v.youku.com/v_show/id_…
1.安装Linux 需要:3台CentOS7虚拟机 IP:192.168.245.130,192.168.245.131,192.168.245.132(类似,尽量保持连续,方便记忆) 注意: 3台虚拟机的网络设置为NAT模式,这样安装好后的3台虚拟机的IP是挨着的,不然还要修改IP,以达到便于配置集群的目的! NAT模式可以在断网的情况下连接上虚拟机而桥架模式不行! 2.安装JDK 参考我的博客:https://www.cnblogs.com/yszd/p/10140327.html 3.运行…
这是一篇翻译,原文来自:How to load some Avro data into Spark. 首先,为什么使用 Avro ? 最基本的格式是 CSV ,其廉价并且不需要顶一个一个 schema 和数据关联. 随后流行起来的一个通用的格式是 XML,其有一个 schema 和 数据关联,XML 广泛的使用于 Web Services 和 SOA 架构中.不幸的是,其非常冗长,并且解析 XML 需要消耗内存. 另外一种格式是 JSON,其非常流行易于使用因为它非常方便易于理解. 这些格式在…
隐式转换:当某个类没有具体的方法时,可以在该类的伴生对象或上下文中查找是否存在隐式转换,将其转换为可以调用该方法的类,通过代码简单的描述下 一:隐式转换 1.定义类Man class Man(val name: String) 2.定义类SuperMan,并在类中定义一个方法 class SuperMan(val name: String) { def makeMiracles = println(this.name + " is super man!") } 3.在main方法中实例…
package com.dt.spark.scala.bascis object Functional_Itearal {   def main(args: Array[String]): Unit = {        val range = 1 to 10     val list = List(1,2,3,4,5)     println(list.head)      println(list.tail)            println(list.tail)         pri…
package com.dt.spark.scala.bascis class Dataframework case class Computerframework (name:String,popular:Boolean) extends Dataframework case class Storgeframework (name:String,popular:Boolean) extends Dataframework object helloPatternMatch { def main(…
初次尝试用 Spark+scala 完成项目的重构,由于两者之前都没接触过,所以边学边用的过程大多艰难.首先面临的是如何快速上手,然后是代码调优.性能调优.本章主要记录自己在项目中遇到的问题以及解决方式,下篇会尝试调优方法.末尾会分享自己的学习资料,也供大多菜鸟第一次使用作为参考.由于自己项目中大量使用spark sql,所以下面的经验大多是和spark sql有关.同样下面也列出作为菜鸟在学习过程中的困惑以及踩的坑,还请大牛勿笑 ~_~ 如果有更好的方式解决,欢迎留言,一起学习. 1.常用场景…
[TOC] Spark简介 整体认识 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架.最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一. Spark在整个大数据系统中处于中间偏上层的地位,如下图,对hadoop起到了补充作用: 基本概念 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 第一步分割任务.首先我们需…
本篇接着谈谈那些稍微复杂的API. 1)   flatMapValues:针对Pair RDD中的每个值应用一个返回迭代器的函数,然后对返回的每个元素都生成一个对应原键的键值对记录 这个方法我最开始接触时候,总是感觉很诧异,不是太理解,现在回想起来主要原因是我接触的第一个flatMapValues的例子是这样的,代码如下: val rddPair: RDD[(String, Int)] = sc.parallelize(List(("x01", 2), ("x02"…
Spark执行不少操作时都依赖于闭包函数的调用,此时如果闭包函数使用到了外部变量驱动程序在使用行动操作时传递到集群中各worker节点任务时就会进行一系列操作: 1.驱动程序使将闭包中使用变量封装成对象,驱动程序序列化对象,传给worker节点任务: 2.worker节点任务接收到对象,执行闭包函数: 由于使用外部变量势必会通过网络.序列化.反序列化,如外部变量过大或过多使用外部变量将会影响Spark程序的性能: Spark提供了两种类型的共享变量(Shared Variables):广播变量(…