Spark---SparkCore(二)

四、补充算子

1、transformations 类算子

  • mapPartitionWithIndex

类似于mapPartitions,除此之外还会携带分区的索引值。

  • repartition

增加或减少分区。会产生shuffle。(多个分区分到一个分区不会产生shuffle)

  • coalesce

coalesce常用来减少分区,第二个参数是减少分区的过程中是否产生shuffle。

true为产生shuffle,false不产生shuffle。默认是false。

如果coalesce设置的分区数比原来的RDD的分区数还多的话,第二个参数设置为false不会起作用,如果设置成true,效果和repartition一样。即repartition(numPartitions) = coalesce(numPartitions,true)

  • groupByKey

作用在K,V格式的RDD上。根据Key进行分组。作用在(K,V),返回(K,Iterable )。

  • zip

将两个RDD中的元素(KV格式/非KV格式)变成一个KV格式的RDD,两个RDD的每个分区元素个数必须相同。

  • zipWithIndex

该函数将RDD中的元素和这个元素在RDD中的索引号(从0开始)组合成(K,V)对。

  • mapValues

针对K,V格式的RDD,该函数对K,V格式RDD中的value做操作,返回是K,V格式的RDD.

2、Action类算子

  • countByKey

 作用到K,V格式的RDD上,根据Key计数相同Key的数据集元素。

  • countByValue

根据数据集每个元素相同的内容来计数。返回相同内容的元素对应的条数。

五、Spark PV&UV

PV是网站分析的一个术语,用以衡量网站用户访问的网页的数量。对于广告主,PV值可预期它可以带来多少广告收入。一般来说,PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的PV。

1、什么是PV值

PV(page view)即页面浏览量或点击量,是衡量一个网站或网页用户访问量。具体的说,PV值就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或某个网页多少次。PV是指页面刷新的次数,每一次页面刷新,就算做一次PV流量。

度量方法就是从浏览器发出一个对网络服务器的请求(Request),网络服务器接到这个请求后,会将该请求对应的一个网页(Page)发送给浏览器,从而产生了一个PV。那么在这里只要是这个请求发送给了浏览器,无论这个页面是否完全打开(下载完成),那么都是应当计为1个PV。

2、什么是UV值

UV(unique visitor)即独立访客数,指访问某个站点或点击某个网页的不同IP地址的人数。在同一天内,UV只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数。UV提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。

六、Spark-Submit提交参数

Options:

  • --master

 MASTER_URL, 可以是spark://host:port, mesos://host:port, yarn,  yarn-cluster,yarn-client, local

  • --deploy-mode

DEPLOY_MODE, Driver程序运行的地方,client或者cluster,默认是client。

  • --class

CLASS_NAME, 主类名称,含包名

  • --jars

逗号分隔的本地JARS, Driver和executor依赖的第三方jar包

  • --files

用逗号隔开的文件列表,会放置在每个executor工作目录中

  • --conf

spark的配置属性

  • --driver-memory

Driver程序使用内存大小(例如:1000M,5G),默认1024M

  • --executor-memory

每个executor内存大小(如:1000M,2G),默认1G

Spark standalone with cluster deploy mode only:

  • --driver-cores

Driver程序的使用core个数(默认为1),仅限于Spark standalone模式

  • --supervise

Driver失败后是否重启Driver,仅限于Spark  alone或者Mesos模式

Spark standalone and Mesos only:

  • --total-executor-cores

executor使用的总核数,仅限于SparkStandalone、Spark on Mesos模式

Spark standalone and YARN only:

  • --executor-cores

每个executor使用的core数,Spark on Yarn默认为1,standalone默认为

Worker上所有可用的core。

YARN-only:

  • --driver-cores

driver使用的core,仅在cluster模式下,默认为1。

  • --queue

QUEUE_NAME  指定资源队列的名称,默认:default

  • --num-executors

一共启动的executor数量,默认是2个。

你可能感兴趣的:(Spark,spark,大数据,分布式)