博主简介
- 作者简介:大家好,我是wux_labs。
热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。- 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~
- 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~
- 请支持我:欢迎大家 点赞+收藏⭐️+吐槽,您的支持是我持续创作的动力~
大家好!今天为大家分享的是《PySpark大数据分析实战》第2章第5节的内容:云服务模式Databricks介绍运行作业。
图书在:当当、京东、机械工业出版社以及各大书店有售!
除了交互式执行代码,还可以采用Job的方式运行Python脚本,修改WordCount.py脚本,去掉sc的创建、修改words.txt的路径,代码如下:
from pyspark import SparkConf, SparkContext
if __name__ == '__main__':
# 通过SparkContext对象读取文件
fileRdd = sc.textFile("dbfs:/FileStore/tables/words.txt")
# 将文件中的每一行按照空格拆分成单词
wordsRdd = fileRdd.flatMap(lambda line: line.split(" "))
# 将每一个单词转换为元组,
wordRdd = wordsRdd.map(lambda x: (x, 1))
# 根据元组的key分组,将value相加
resultRdd = wordRdd.reduceByKey(lambda a, b: a + b)
# 将结果收集到Driver并打印输出
print(resultRdd.collect())
将修改后的脚本上传到DBFS上或者工作区中,方便后续使用。
笔记本编写的代码适合交互式方式执行。要定时运行或者长时间运行Spark应用程序,需要创建作业进行运行。通过左侧菜单栏Workflows菜单打开Jobs列表界面,如图所示。
点击Create Job按钮,打开作业配置界面,如图所示。
在配置界面配置好作业的信息,Type选择Python script,Source选择DBFS,Path指定Python脚本的路径,Cluster选择已创建的集群,点击Create按钮创建作业,如图所示。
创建完成后,可以从Jobs列表中看到创建的作业,如图所示。
通过列表中Actions列的运行按钮直接运行作业,作业运行以后,在详情界面可以监控作业的运行情况,如图所示。
在列表中,点击Spark UI链接可以打开Spark Master Web UI界面;点击Logs链接可以打开日志界面查看运行日志及结果,如图所示。
Workflows中的作业除了支持笔记本、Python脚本外,还支持多种其他方式,包括JAR、Spark Submit等,如图所示。
Spark Submit方式运行的作业,不支持在已创建的集群上运行,仅支持在运行作业的时候自动创建新集群来运行,运行作业所需要的参数全部通过Parameters文本框以列表的形式指定,如图所示。
好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。