Spark导出
来源:互联网 发布:海康网络监控摄像头 编辑:程序博客网 时间:2024/06/06 08:34
3 Spark导出
在使用Spark之前,先将编译好的classes导出为jar比较好,可以
$ sbt/sbt assembly
将Spark及其依赖包导出为jar,放在
core/target/spark-core-assembly-0.4-SNAPSHOT.jar
可以将该jar添加到CLASSPATH里,开发Spark应用了。
一般在开发Spark应用时需要导入Spark一些类和一些隐式的转换,需要再程序开头加入
import spark.SparkContext
import SparkContext._
4 使用Spark交互模式
1. 运行./spark-shell.sh
2. scala> val data = Array(1, 2, 3, 4, 5) //产生data
data: Array[Int] = Array(1, 2, 3, 4, 5)
3. scala> val distData = sc.parallelize(data) //将data处理成RDD
distData: spark.RDD[Int] = spark.ParallelCollection@7a0ec850 (显示出的类型为RDD)
4. scala> distData.reduce(_+_) //在RDD上进行运算,对data里面元素进行加和
12/05/10 09:36:20 INFO spark.SparkContext: Starting job...
5. 最后运行得到
12/05/10 09:36:20 INFO spark.SparkContext: Job finished in 0.076729174 s
res2: Int = 15
5 使用Spark处理Hadoop Datasets
Spark可以从HDFS/local FS/Amazon S3/Hypertable/HBase等创建分布式数据集。Spark支持text files,SequenceFiles和其他Hadoop InputFormat。
比如从HDFS上读取文本创建RDD
scala> val distFile = sc.textFile("hdfs://m120:9000/user/LijieXu/Demo/file01.txt")
12/05/10 09:49:01 INFO mapred.FileInputFormat: Total input paths to process : 1
distFile: spark.RDD[String] = spark.MappedRDD@59bf8a16
然后可以统计该文本的字符数,map负责处理文本每一行map(_size)得到每一行的字符数,多行组成一个List,reduce负责将List中的所有元素相加。
scala> distFile.map(_.size).reduce(_+_)
12/05/10 09:50:02 INFO spark.SparkContext: Job finished in 0.139610772 s
res3: Int = 79
textFile可以通过设置第二个参数来指定slice个数(slice与Hadoop里的split/block概念对应,一个task处理一个slice)。Spark默认将Hadoop上一个block对应为一个slice,但可以调大slice的个数,但不能比block的个数小,这就需要知道HDFS上一个文件的block数目,可以通过50070的dfs的jsp来查看。
对于SequenceFile,可以使用SparkContext的sequenceFile[K,V]方法生成RDD,其中K和V肯定要是SequenceFile存放时的类型了,也就是必须是Writable的子类。Spark也允许使用native types去读取,如sequenceFile[Int, String]。
对于复杂的SequenceFile,可以使用SparkContext.hadoopRDD方法去读取,该方法传入JobConf参数,包含InputFormat,key class,value class等,与Hadoop Java客户端读取方式一样。
- Spark导出
- spark数据导入导出
- Spark之导出PMML文件(Python)
- Spark SQL简单操作演示(含导出表)
- Spark SQL简单操作演示(含导出表)
- spark
- spark
- Spark
- spark
- Spark
- spark
- Spark
- Spark
- spark
- Spark
- SPARK
- Spark
- Spark
- 和电风扇对方受到广泛接受法国大使馆和
- Linux写时拷贝技术(copy-on-write)
- C#字符串与字节数组互转
- Scala安装
- 位运算:左移右移及原码补码转换
- Spark导出
- 《移动设计》阅读笔记
- java 中的序列化
- Populating Next Right Pointers in Each Node(leetcode)
- 给Linux初学者和管理员一个终极命令行"备忘单"
- JS获取字符串实际长度!
- Spark 4
- Spark--5
- 支持取消操作和暂停操作的Backgroundworker示例一则