Spark获取当前分区的partitionId
我的原创地址:https://dongkelun.com/2018/06/28/sparkGetPartitionId/
前言
本文讲解Spark如何获取当前分区的partitionId,这是一位群友提出的问题,其实只要通过TaskContext.get.partitionId(我是在官网上看到的),下面给出一些示例。
1、代码
下面的代码主要测试SparkSession,SparkContext创建的rdd和df是否都支持。
package com.dkl.leanring.partition import org.apache.spark.sql.SparkSession import org.apache.spark.TaskContext /** * 获取当前分区的partitionId */ object GetPartitionIdDemo { def main(args: Array[String]): Unit = { val spark = SparkSession.builder().appName("GetPartitionIdDemo").master("local").getOrCreate() val sc = spark.sparkContext val data = Seq(1, 2, 3, 4) // 测试rdd,三个分区 val rdd = sc.parallelize(data, 3) rdd.foreach(i => { println("partitionId:" + TaskContext.get.partitionId) }) import spark.implicits._ // 测试df,三个分区 val df = rdd.toDF("id") df.show df.foreach(row => { println("partitionId:" + TaskContext.get.partitionId) }) // 测试df,两个分区 val data1 = Array((1, 2), (3, 4)) val df1 = spark.createDataFrame(data1).repartition(2) df1.show() df1.foreach(row => { println("partitionId:" + TaskContext.get.partitionId) }) } }
2、结果
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SparkStreaming+Kafka 实现统计基于缓存的实时uv
版权声明:本文由董可伦首发于https://dongkelun.com,非商业转载请注明作者及原创出处。商业转载请联系作者本人。 https://blog.csdn.net/dkl12/article/details/80943294 我的原创地址:https://dongkelun.com/2018/06/25/KafkaUV/ 前言 本文利用SparkStreaming+Kafka实现实时的统计uv,即独立访客,一个用户一天内访问多次算一次,这个看起来要对用户去重,其实只要按照WordCount的思路,最后输出key的数量即可,所以可以利用SparkStreaming+Kafka 实现基于缓存的实时wordcount程序,这里稍加改动,如果uv数量增加的话就打印uv的数量(key的数量)。 1、数据 数据是我随机在kafka里生产的几条,用户以空格区分开(因为用的之前单词统计的程序) 2、kafka topic 首先在kafka建一个程序用到topic:KafkaUV bin/kafka-topics.sh --create --zookeeper localhost:2181 -...
- 下一篇
吴恩达《机器学习》课程总结(17)大规模机器学习
17.1大型数据集的学习 首先通过学习曲线判断是否增大数据集有效: 高方差时(交叉验证集误差减去训练集误差大时)增加数据集可以提高系统。下图中左图增加数据集有效,右图无效。 17.2随机梯度下降法 随机梯度下降法是只使用一个样本来迭代,其损失函数为: 迭代过程为: 特点: (1)计算量小,迭代速度快; (2)在最小值附近徘徊,无法求得最小值。 17.3小批量梯度下降 每次迭代所使用的样本数介于批量梯度下降法和随机梯度下降法之间,通常是2-100。 17.4随机梯度下降收敛 (1)对于批量梯度下降法而言,每次迭代求其代价函数的计算量太大,不现实; (2)对于随机梯度下降法而言,每次迭代计算代价函数,然后经过x次迭代之后求x次代价函数的平均值,然后将该值与迭代次数绘制到图上。 (3)如果得到的图颠簸切看不到明显减少的函数图像,如下图中蓝色所示,可以增加α来时函数更加平缓,如下图红色所示,如果是洋红色可能说明模型本身有问题。 (4)如果出现代价函数随迭代次数的增加而增加,学习率α可能需要随着迭代的次数而减小: 17.5在线学习 常用于网站中,有连续的数据流可供模型来学习,与传统的模型学习...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Hadoop3单机部署,实现最简伪集群
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS关闭SELinux安全模块
- Docker使用Oracle官方镜像安装(12C,18C,19C)