![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spark 3.1.2
文章平均质量分 54
Spark相关
dzzxjl
大数据 & 推荐算法 工程师
展开
-
Spark Streaming
ssc.textFileStream("/Users/dzzxjl/SStest/")如果是在集群上运行,需要将程序打成JAR包,通过spark主目录下的bin/spark-submit 提交,并不断上传文档到HDFS上指定监听路径下以模拟实时数据流。SparkStreaming需要读取流式的数据,而不能直接从datas文件夹中创建。如果是本地目录用file:///home/data 你不能移动文件到这个目录,必须用流的形式写入到这个目录形成文件才能被监测到。在 Spark 官方提供关于集成 Kaf原创 2021-12-22 22:08:37 · 775 阅读 · 0 评论 -
【HQL】基础
spark sql原创 2021-12-21 23:45:00 · 306 阅读 · 0 评论 -
PySpark 3.1.2
为什么不用python?总体上来说,PySpark是借助Py4j实现Python调用Java,来驱动Spark应用程序,本质上主要还是JVM runtime,Java到Python的结果返回是通过本地Socket完成。虽然这种架构保证了Spark核心代码的独立性,但是在大数据场景下,JVM和Python进程间频繁的数据通信导致其性能损耗较多,恶劣时还可能会直接卡死,所以建议对于大规模机器学习或者Streaming应用场景还是慎用PySpark,尽量使用原生的Scala/Java编写应用程序,对于中小规模数原创 2021-10-30 12:30:01 · 1122 阅读 · 0 评论 -
数据倾斜调优
在Spark中,同一个Stage的不同Partition可以并行处理,而具有依赖关系的不同Stage之间是串行处理的。假设某个Spark Job分为Stage 0和Stage 1两个Stage,且Stage 1依赖于Stage 0,那Stage 0完全处理结束之前不会处理Stage 1。而Stage 0可能包含N个Task,这N个Task可以并行进行。如果其中N-1个Task都在10秒内完成,而另外一个Task却耗时1分钟,那该Stage的总时间至少为1分钟。换句话说,一个Stage所耗费的时间,主要由原创 2021-09-26 23:52:14 · 52 阅读 · 0 评论 -
Spark SQL
val sparkSession = SparkSession.builder. master("local") .appName("spark session example") .enableHiveSupport() .getOrCreate()DataFrame 是Spark SQL提供的一种特殊的RDDdataframe 能够更方便的操作数据集,而且因为其底层是通过 spark sql 的 Catalyst优化器生成优化后的执行代码,所以其执行原创 2021-09-23 23:54:53 · 69 阅读 · 0 评论 -
Spark MLlib/ML
技术角度上,面向的数据集类型不一样:ML的API是面向Dataset的(Dataframe是Dataset的子集,也就是Dataset[Row])!!!DataFramemllib是面对RDD的Dataset和RDD有啥不一样呢?Dataset的底端是RDD。Dataset对RDD进行了更深一层的优化,比如说有sql语言类似的黑魔法,Dataset支持静态类型分析所以在compile time就能报错,各种combinators(map,foreach等)性能会更好,等等。编程过程上,构建机器学原创 2021-09-23 23:46:25 · 254 阅读 · 0 评论 -
spark常用算子transform&action
在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFile等)。在Spark中,只有遇到action,才会执行RDD的计算(即延迟计算),这样在运行时可以通过管道的方式传输多个转换。——————————————————————————————...原创 2021-09-18 00:14:29 · 239 阅读 · 0 评论 -
Shuffle 混洗(调优)
Shuffle是MapReduce框架中的一个特定的phase(分阶段),介于Map phase和Reduce phase之间,当Map的输出结果要被Reduce使用时,输出结果需要按key哈希,并且分发到每一个Reducer上去,这个过程就是shuffle。原创 2021-09-17 23:51:35 · 193 阅读 · 0 评论 -
Spark基础与核心概念
Driver: 使用Driver这一概念的分布式框架有很多比如hive,Spark中的Driver即运行Application的main()函数,并且创建SparkContext,创建SparkContext的目的是为了准备Spark应用程序的运行环境,在Spark中由SparkContext负责与ClusterManager通讯,进行资源的申请,任务的分配和监控等。当Executor部分运行完毕后,Driver同时负责将SaprkContext关闭,通常SparkContext代表Driver.原创 2021-09-17 21:55:43 · 143 阅读 · 0 评论