spark中常见样例
前言
我用的都是单机版本的,集群的没有用过,下面都是单机上运行进行的测试。
spark控制台和eclipse-scala中有一个很大的区别就是数据类型的转换问题!!,一定要注意,rdd转dataframe在开发工具中需要调用.toDF方法进行转换!!
RDD:http://spark.apache.org/docs/latest/rdd-programming-guide.html
SparkSQL:http://spark.apache.org/docs/latest/sql-programming-guide.html
GraphX:http://spark.apache.org/docs/latest/graphx-programming-guide.html
sbt工具(编译打包工具,GitHub上面的项目也可以):https://www.cnblogs.com/vincent-hv/p/3309805.html
一、scala和spark环境测试
scala中没有static关键字,所以 对于一个class来说,所有的方法和成员变量在实例被 new 出来之前都是无法访问的,因此class中的main方法也就没用了。scala中object的所有成员变量和方法都默认是static的,所以可以访问main方法。
1.测试scala环境
新建一个scala object进行测试
def main(args: Array[String]): Unit = {
val array = Array("devin","shuai")
array.foreach(println)
}
2.测试spark环境
在新建spark环境后将spark文件夹下面的jars里面的jar包添加到项目的library中,然后新建一个包,然后再在包下面新建一个scala object!!!注意是scala object不是scala class!!
package wordcount
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object T2 {
def main(args: Array[String]) {
if (args.length < 0) {
System.err.println("Usage: <file>")
System.exit(1)
}
println( "Hello World!" )
//.setMaster("local")
val conf = new SparkConf().setAppName("wordcount").setMaster("local")
val sc = new SparkContext(conf)
val line = sc.textFile("C:/Users/17646/Desktop/1.txt").cache()
line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect().foreach(println