Scala进阶之路-为什么要学习Scala以及开发环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近人工智能和大数据那是相当的火呀,人工智能带动了Python的流行,区块链带动了golang的流行,而大数据带动了Scala的流行.可能你会否定我,你可能会说大数据当然是带动Java的流行啊,因为Hadoop生态圈的大部分组件都是由Java语言编写的,不过换句话说,哪个大数据开发工程师不会java语言呢?而近几年流行的Spark技术哪个做大数据开发的或者大数据运维的不了…
一.Weex介绍 Weex是阿里巴巴在2016年6月份对外开源的一款移动端跨平台的移动开发工具,Weex的出现让我们的应用既有了Native的性能和H5的动态性,只要通过前端JS语法就能写出同时兼容iOS.Android.Web三端兼容的页面,解决了移动应用开发中频繁发版和多端研发等痛点. 相对于Facebook的React Native,Weex更加轻量.接入成本更小.更容易上手.而且Weex的理念(write once, run everywhere)相比于React Native的理念(L…
一.安装Spark 1.1 下载并解压 官方下载地址:http://spark.apache.org/downloads.html ,选择Spark版本和对应的Hadoop版本后再下载: 解压安装包: # tar -zxvf spark-2.2.3-bin-hadoop2.6.tgz 1.2 配置环境变量 # vim /etc/profile 添加环境变量: export SPARK_HOME=/usr/app/spark-2.2.3-bin-hadoop2.6 export PATH=${SP…
自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门了,但是很多的知识点都是零零散散的,也缺少了总结. 相信凭借着对于linux内核层,android framework层的熟悉,加上也写过简单的应用,对于之后的android开发学习之路会事倍功半. 要学android,先要学java,但是光光从学java开始,会让很多人还没动手之前就失去了兴趣,所…
一.Python环境 直接终端查询下python安装没:python --version Python 2.7.12 Ubuntu竟然已经装了Python2.7,那就好说了.不然自己装和装jdk差不多.本来想着要不要再装个3.4的,但是发现2.7也很常用,那就偷个懒了. 二.安装PyDev 1.在线安装 Elipse可以在线安装,又方便还方便而且方便.从http://pydev.org/updates 可以获得在线安装地址.在Help菜单中,选择Install New Software,点击Ad…
Scala进阶之路-高级数据类型之集合的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala 的集合有三大类:序列 Seq.集 Set.映射 Map,所有的集合都扩展自 Iterable 特质在 Scala 中集合有可变(“scala.collection.mutable” 包下存放)和不可变(“scala.collection.immutable” 包下存放)两种类型,immutable 类型的集合初始化后就不能改变了(注意与 val 修饰的变量进行区别). 一.…
Scala进阶之路-Scala中的枚举用法案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这里分别写了一个Java定义枚举类型和Scala定义枚举类型的案例. 一.Java中定义枚举类型案例展示 /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%…
Scala进阶之路-Scala中的高级类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类型(Type)与类(Class)的区别 在Java里,一直到jdk1.5之前,我们说一个对象的类型(type),都与它的class是一一映射的,通过获取它们的class对象,比如 String.class, int.class, obj.getClass() 等,就可以判断它们的类型(type)是不是一致的.简单的说Type是用来描述类的,而Class是用来描述类的,因此Tpye范…
Scala进阶之路-Scala中的Ordered--Ordering 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   说道对象的比较,在Java中大家最熟悉不过的就是实现类本身实现Comparable接口或者是调用者自己实现Comparator接口均可以实现对象之间的比较.在Scala中Ordered这个特质对应的是Comparable,而Odrering这个特质对应的是Comparator.好了,废话不多说,我们直接看案例吧. 一.Java中的Comparable--Co…
Scala进阶之路-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的反射技术和Java反射用法类似,我这里就不一一介绍反射是啥了,如果对Java的反射感兴趣的话可以参考我之前分享的笔记:https://www.cnblogs.com/yinzhengjie/p/9272289.html.好了,废话不多说,我们直接上一个Scala的案例. /* @author :yinzhengjie Blog:http://www.cnblogs.…
Scala进阶之路-正则表达式案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 废话不多说,正则大家都很清楚,那在Scala如何使用正则了?我们直接上个案例,如下: /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ EMAIL:y1053419035@qq.com */ package cn.org.yi…
Scala进阶之路-进程控制之执行shell脚本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 废话不多说,我这里直接放一个案例. /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ EMAIL:y1053419035@qq.com */ package cn.org.yinzhengjie.shell ob…
Scala进阶之路-Spark独立模式(Standalone)集群部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们知道Hadoop解决了大数据的存储和计算,存储使用HDFS分布式文件系统存储,而计算采用MapReduce框架进行计算,当你在学习MapReduce的操作时,尤其是Hive的时候(因为Hive底层其实仍然调用的MapReduce)是不是觉得MapReduce运行的特别慢?因此目前很多人都转型学习Spark,今天我们就一起学习部署Spark集群吧. 一.准备…
Scala进阶之路-idea下进行spark编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.创建新模块并添加maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche…
Scala进阶之路-Spark本地模式搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Spark简介 1>.Spark的产生背景 传统式的Hadoop缺点主要有以下两点: 第一.迭代式计算效率低(一个MapReduce依赖上一个MapReduce的结果); 第二.交互式数据挖掘效率低(运行一个HIVE语句效率是极低的,第一天输入的SQL可能等到第二天才能拿到结果) Spark优化了Hadoop的两个缺点,可以将多个job合并成一个job来执行,也可以将于磁盘的交互迁移…
Scala进阶之路-Spark底层通信小案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Spark Master和worker通信过程简介 1>.Worker会向master注册自己: 2>.Master收到worker的注册信息之后,会告诉你已经注册成功,并给worker发送启动执行器的消息: 3>.Worker收到master的注册消息之后,会定期向master汇报自己的状态: 4>.master收到worker的心跳信息后,定期的更新worker的…
Scala进阶之路-Scala高级语法之隐式(implicit)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们调用别人的框架,发现少了一些方法,需要添加,但是让别人为你一个人添加是不现实的,因此很多很多时候需要我们自己动手.掌握implicit的用法是阅读Spark源码的基础,也是学习Scala其它的开源框架的关键,implicit可分为隐式参数,隐式转换类型以及隐式类三种类型. 一.Scala中的隐士参数 /* @author :yinzhengjie Blog:…
Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处理线程.锁和竞态条件等等,这个过程很容易出错,而且会导致程序代码难以阅读.测试和维护.Akka 是 JVM 平台上构建高并发.分布式和容错应用的工具包和运行时.Akka 用 Scala 语言写成,同时提供了 Scala 和 JAVA 的开发接口. 2>.Akka 中 中 Actor  模型 Akka 处…
Scala进阶之路-统计商家id的标签数以及TopN示例案例分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.项目需求 将“temptags.txt”中的数据进行分析,统计出商家id的评论标签数量,由于博客园无法上传大文件的文本,因此我把该文本的内容放在博客园的另一个链接了(需要的戳我),如果网页打不开的话也就可以去百度云盘里下载副本,链接:https://pan.baidu.com/s/1daRiwOVe6ohn42fTv6ysJg 密码:h6er. 我之前使用Had…
Scala进阶之路-Scala中的泛型介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 通俗的讲,比如需要定义一个函数,函数的参数可以接受任意类型.我们不可能一一列举所有的参数类型重载函数.那么程序引入了一个称之为泛型的东西,这个类型可以代表任意的数据类型.说白了泛型就是对数据类型的约束,例如 List,在创建 List 时,可以传入整形.字符串.浮点数等等任意类型.那是因为 List 在类定义时引用了泛型. 一.Scala中的泛型 /* @author :yinzheng…
Scala进阶之路-尾递归优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 递归调用有时候能被转换成循环,这样能节约栈空间.在函数式编程中,这是很重要的,我们通常会使用递归方法来遍历集合.而不是所有的递归都能被优化.递归之所有能被优化是在指在函数的最后一行为递归调用(即尾递归),并且这个递归调用没有其它元素参与. 一.什么情况能导致栈的溢出 1>.循环调用 答:循环调用并不会导致栈的溢出,因为循环是一个压栈和弹栈的过程. 2>.递归调用 答:递归调用会导致栈的溢出.因为递…
Scala进阶之路-Scala特征类与unapply反向抽取 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala特征类分析 1>.Unit 答:用于定义返回值类型,它的值只有一个,即"()",它有点类似于Java的void,只不过Java的返回值没有变现形式. 2>.null 答 :一般多用于Scala语法赋值时默认的空值,比如:“var blog:String = _”,那么变量中blog的值就为null. 3>.Nothing 答:N…
Scala进阶之路-面向对象编程之类的成员详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala中的object对象及apply方法 1>.scala 单例对象 在Scala中,是没有static这个东西的,但是它也为我们提供了单例模式的实现方法,那就是使用关键字object.注意:object 对象是不能带参数的. /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%…
Scala进阶之路-I/O流操作之文件处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 说起Scala语言操作文件对象其实是很简单的,大部分代码和Java相同. 一.使用Scala拷贝文件实现 /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ EMAIL:y1053419035@qq.com */ pac…
Scala进阶之路-高级数据类型之数组的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的初始化方式 1>.长度不可变数组Array 注意:顾名思义,长度不可变数组指的是数组的长度不可变,但是数组的内容是可以变换的! /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ EMAIL:y1053419…
Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ EMAIL:y1053419035@qq.com */ package cn.org.yinzhengjie.basicGrammar objec…
Scala进阶之路-Scala的基本语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数式编程初体验Spark-Shell之WordCount var arr=Array("hello","yinzhengjie","hello","world","yinzhengjie","big","data") //声明一个数组 arr.map((_…
001-Scala开发环境搭建和HelloWorld解析 Scala 函数式编程和面向对象结合的语言 函数式编程擅长数值计算 面向对象擅长大型工程和项目的组织以及团队的分工协作 Scala会是下一个伟大的语言吗? Spark是用Scala语言编写的 Hadoop是用Java语言编写的 少动一根手指 Scala开发环境 基于JVM的运行环境 需要安装JAVA 建议7或者8版本 注意选择匹配的位数和系统的JAVA 配置环境变量 JAVA_HOME PATH中添加bin目录 CLASS_PATH dt…
Ubuntu14.04下Scala开发环境搭建. 1:安装JDK,jdk-6u45-linux-x64.bin 将其安装到/usr/lib/jvm/jdk1.6.0_45/. 2:安装Scala,下载scala-2.11.4.tgz 将其解压到/usr/lib/jvm/scala-2.11.4/. 3:配置环境变量: y@y:~$ vim /etc/profile #JAVA Environment JAVA_HOME=/usr/lib/jvm/jdk1..0_45 #scala export…
Scala开发环境搭建与资源推荐 本文介绍了Scala的开发环境,包括SDK.IDE的设置.常用资源列表等.Scala是一门静态语言,很有可能就是Java的继承者. AD: 2014WOT全球软件技术峰会北京站 课程视频发布 Scala基于Java平台,所以Scala开发环境很容易搭建.看了下面的介绍,你会对Scala开发环境的搭建以及一些常用资源了解一二. Scala号称Java的继承者,优美地结合了大家所熟悉的面向对象技术以及随着动态语言的流行而逐渐为广大开发者所认知的函数式编程技术:同时,…