在Scala中一个很强大的功能就是模式匹配,本文并不打算介绍模式匹配的概念以及如何使用。本文的主要内容是讨论Scala模式匹配泛型类型擦除问题。先来看看泛型类型擦除是什么情况:scala> def test(a:Any) = a match { | case a :List[String] => println("iteblog is ok"); | case _ => |} 按照代码的意思应该是匹配L w397090770 9年前 (2015-10-28) 6467℃ 0评论11喜欢
我们在开发网站的时候一般都会分header、main、side、footer。这些模块分别包含了各自公用的信息,比如header一般都是本网站所有页面需要引入的模块,里面一般都是放置菜单等信息;而footer一般是放在网站所有页面的底部。当网页的内容比较多的时候,我们可以看到footer一般都是在页面的底部。但是,当页面的内容不足以填满一 w397090770 9年前 (2015-10-28) 4630℃ 0评论8喜欢
Spark Data Source API是从Spark 1.2开始提供的,它提供了可插拔的机制来和各种结构化数据进行整合。Spark用户可以从多种数据源读取数据,比如Hive table、JSON文件、Parquet文件等等。我们也可以到http://spark-packages.org/(这个网站貌似现在不可以访问了)网站查看Spark支持的第三方数据源工具包。本文将介绍新的Spark数据源包,通过它我们 w397090770 9年前 (2015-10-21) 3902℃ 0评论4喜欢
你可能会在Scala中经常使用for循环已经,所以理解Scala编译器是如何解析for循环语句是非常重要的。我们记住以下四点规则即可: 1、对集合进行简单的for操作,Scala编译器会将它翻译成对集合进行foreach操作; 2、带有guard的for循环,编译器会将它翻译成一序列的withFilter操作,紧接着是foreach操作; 3、带有yield的for w397090770 9年前 (2015-10-20) 4017℃ 0评论6喜欢
我们知道,在Spark中创建RDD的创建方式大概可以分为三种:(1)、从集合中创建RDD;(2)、从外部存储创建RDD;(3)、从其他RDD创建。 而从集合中创建RDD,Spark主要提供了两中函数:parallelize和makeRDD。我们可以先看看这两个函数的声明:[code lang="scala"]def parallelize[T: ClassTag]( seq: Seq[T], numSlices: Int = defaultParalle w397090770 9年前 (2015-10-09) 48310℃ 0评论60喜欢