首先,我先定义一个文件,hello.txt,里面的内容如下:

hello spark
hello hadoop
hello flink
hello storm

Scala方式

scala版本是2.11.8。

配置maven文件,三个依赖:

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0-cdh5.7.0</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.8</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.0</version>
</dependency>
package com.darrenchan.spark

import org.apache.spark.{SparkConf, SparkContext}

object SparkCoreApp2 {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setMaster("local[2]").setAppName("WordCountApp")
val sc = new SparkContext(sparkConf) //业务逻辑
val counts = sc.textFile("D:\\hello.txt").
flatMap(_.split(" ")).
map((_, 1)).
reduceByKey(_+_) println(counts.collect().mkString("\n")) sc.stop()
}
}

运行结果:

Java方式

Java8,用lamda表达式。

package com.darrenchan.spark.javaapi;

import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import scala.Tuple2; import java.util.Arrays; public class WordCountApp2 {
public static void main(String[] args) {
SparkConf sparkConf = new SparkConf().setMaster("local[2]").setAppName("WordCountApp");
JavaSparkContext sc = new JavaSparkContext(sparkConf); //业务逻辑
JavaPairRDD<String, Integer> counts =
sc.textFile("D:\\hello.txt").
flatMap(line -> Arrays.asList(line.split(" ")).iterator()).
mapToPair(word -> new Tuple2<>(word, 1)).
reduceByKey((a, b) -> a + b); System.out.println(counts.collect()); sc.stop();
}
}

运行结果:

Python方式

Python 3.6.5。

from pyspark import SparkConf, SparkContext

def main():
# 创建SparkConf,设置Spark相关的参数信息
conf = SparkConf().setMaster("local[2]").setAppName("spark_app")
# 创建SparkContext
sc = SparkContext(conf=conf) # 业务逻辑开发
counts = sc.textFile("D:\\hello.txt").\
flatMap(lambda line: line.split(" ")).\
map(lambda word: (word, 1)).\
reduceByKey(lambda a, b: a + b) print(counts.collect()) sc.stop() if __name__ == '__main__':
main()

运行结果:

使用Python在Windows下运行Spark有很多坑,详见如下链接:

http://note.youdao.com/noteshare?id=aad06f5810f9463a94a2d42144279ea4

最新文章

  1. vmware备忘
  2. python安装locustio报错error: invalid command &#39;bdist_wheel&#39;的解决方法
  3. 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
  4. 李洪强iOS经典面试题143-绘图与动画
  5. 慕课网__CSS_网页图标制作
  6. 使用shell操作mysql(转)
  7. SSH basics
  8. angular中$cacheFactory缓存的使用
  9. org.apache.flume.FlumeException: NettyAvroRpcClient { host: xxx.xxx.xxx.xxx, port: 41100 }: RPC
  10. android中文件操作的四种枚举
  11. NDK(8)&quot;Unknown Application ABI&quot;的解决方案
  12. [TYVJ1827]『Citric II』一道防AK好题
  13. 向日葵sunlogin配置
  14. 外网SSH访问内网LINUX的N种方法
  15. silverlight与wcf双向通讯 例子
  16. SQL Server 性能调优培训引言
  17. Spring Boot中采用Mockito来mock所测试的类的依赖(避免加载spring bean,避免启动服务器)
  18. 月薪20k以上的高级程序员需要学习哪些技术呢?
  19. hasattr(),getattr(),setattr()的使用
  20. 关于使用Git的几点小技巧

热门文章

  1. go 杂项笔记
  2. 设置fiddler抓取安卓手机的包
  3. Educational Codeforces Round 77 (Rated for Div. 2)
  4. [译]Vulkan教程(15)图形管道基础之RenderPass
  5. 第一个月.day1
  6. mjml - 如何快速编写响应式电子邮件?
  7. 利用Python进行数据分析-Pandas(第七部分-时间序列)
  8. CSS学习笔记-盒子阴影及文字阴影
  9. arcgis api 4.x for js 图层拓展篇之mapvLayer(附源码下载)
  10. iTerm2 使用代理