18 | Word Count:从零开始运行你的第一个Spark应用
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何从零开始运行第一个Spark应用,主要涵盖了安装Spark、配置环境以及基于RDD API的Word Count程序。作者首先介绍了Spark的学习路径,包括基本数据结构RDD、Spark SQL的DataSet/DataFrame API以及流处理模块。然后详细介绍了在本地安装Spark和PySpark的步骤,包括安装Java Developer Kit、Python以及预装Hadoop等。接着,作者讲解了Spark程序的入口,包括SparkContext和SparkSession的初始化方法,并且提出了推荐使用SparkSession作为Spark程序的入口。最后,作者通过示例代码演示了基于RDD API的Word Count程序的实现步骤,包括文本拆分和词频统计。整体而言,本文内容详实,适合初学者快速了解并运行第一个Spark应用。 文章还介绍了如何使用DataFrame API来实现Word Count程序,通过对DataFrame进行操作,避免了创建中间值的繁琐步骤,展示了使用DataSet/DataFrame API的便利性。最后,鼓励读者动手操作一次,以便真正掌握所学知识。整体而言,本文内容丰富,适合初学者快速入门Spark应用程序开发。
《大规模数据处理实战》,新⼈⾸单¥59
全部留言(26)
- 最新
- 精选
- 斯盖丸.groupBy("Value")这个value是什么意思?
作者回复: SparkSession.read.text()读取文件后生成的DataFrame只有一列,它的默认名字就是“value”。我们用lines.value去读取这一列,是同样的道理。之后我们给新的列重命名为”word”,所以groupBy的参数变成了”word”。
2019-05-292 - JustDoDTpython 直接安装 pip install pyspark pip帮你搞定一切安装配置问题。 参考资料: https://pypi.org/project/pyspark/
作者回复: 嗯,这位同学说的很好,用pip install安装pyspark确实方便。我介绍的方法比较普遍试用。
2019-09-0121 - JustDoDT实践成功 demo.txt: I hava a dog He has a Dog RDD写法: [('I', 1), ('hava', 1), ('a', 2), ('dog', 1), ('He', 1), ('has', 1), ('Dog', 1)] [('a', 2), ('I', 1), ('hava', 1), ('dog', 1), ('He', 1), ('has', 1), ('Dog', 1)] DF写法: [Row(word='dog', count=1), Row(word='He', count=1), Row(word='Dog', count=1), Row(word='I', count=1), Row(word='a', count=2), Row(word='hava', count=1), Row(word='has', count=1)] [Row(word='a', count=2), Row(word='I', count=1), Row(word='Dog', count=1), Row(word='hava', count=1), Row(word='dog', count=1), Row(word='has', count=1), Row(word='He', count=1)] 从启动到出结果,DF写法速度要比rdd慢。
作者回复: 👍🏻
2019-09-02 - Qi Liu 刘祺继续学习~
作者回复: 加油⛽️
2019-06-29 - 朱同学java万金油,什么都可以干,人好招,特别是我们这种偏远地区,scala,虽然开发效率高,但是人少,难招,所以我们大数据团队选择了java。至于运行效率,py是最慢的,java和scala应该半斤八俩吧2019-05-2920
- 科学Jia女同学看完2015年出的spark快速大数据分析这本书以后,再来看老师写的这些文字,觉得言简意赅,印象深刻,至于用什么语言倒无所谓了,主要是思路。后期希望老师能多说一些案例和处理中需要注意的技巧。2019-06-2029
- 一看了这一讲意识到之前对Python欠缺了重视,现在明白Python在大数据处理领域是很有竞争力的,因为Spark和众多的库的原因,甚至超越Java,所以现在要重新重视起来Python的学习了2019-05-297
- hallo128【以下代码可以运行,但对df格式的操作是借助二楼的网址去找的,具体含义也不太清楚,只是可以运行出来】 #python前运行调用包 from pyspark.sql import SparkSession from pyspark.sql.functions import explode from pyspark.sql.functions import split #初始化SparkSession程序入口 spark = SparkSession.builder.appName("WordCount").getOrCreate() #读入文档 ds_lines = spark.read.text("/Users/apple/code_tool/spark/WordCount/demo.md") #针对df特定的计算格式 words = ds_lines.select( explode( split(ds_lines.value, " ") ).alias("word") ) #返回的RDD进行计数 wordCounts = words.groupBy("word").count() #展示 wordCounts.show() #关闭spark spark.stop()2019-06-086
- 9527spark_session = SparkSession.builder.appName("PySparkShell").getOrCreate() ds_lines = spark_session.read.textFile("README.md") ds = ds_lines.flatMap(lambda x: x.split(' ')).groupBy("Value").count() ds.show() 我执行这段的时候报错了 AttributeError: 'DataFrameReader' object has no attribute 'textFile' 如果把textFile()改成text()就对了 再执行flatMap那段,也报错了 AttributeError: 'DataFrame' object has no attribute 'flatMap' 是不是API变动了,我用的是2.4.3版本单机执行的2019-05-2916
- hallo128“虽然 Spark 还支持 Java 和 R,但是我个人不推荐你使用。用 Java 写程序实在有些冗长,而且速度上没有优势。” 推荐使用,还是应该详细说明对比下,不能只因为自己偏好某种工具给出建议。对于spark原生来说,速度和库同步更新更快的是Scala,如果你想随时用到spark最新功能库的话,就应该选择Scala,同时速度也是最快的。 至于Python,R,Java,一方面和你的熟悉程度有关,另一方面也与你到底准备用spark来做什么的目的有关。是集群控制,还是数据分析,还是建模,来选择合适的编程语言与spark进行连接编写。2019-06-0814