亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Spark獲取當前分區的partitionId

標簽:
Spark

我的原创地址:https://dongkelun.com/2018/06/28/sparkGetPartitionId/

前言

本文讲解Spark如何获取当前分区的partitionId,这是一位群友提出的问题,其实只要通过TaskContext.get.partitionId(我是在官网上看到的),下面给出一些示例。

1、代码

下面的代码主要测试SparkSession,SparkContext创建的rdd和df是否都支持。

package com.dkl.leanring.partitionimport org.apache.spark.sql.SparkSessionimport 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、结果

[图片上传失败...(image-ae7347-1533797078025)]



作者:董可伦
链接:https://www.jianshu.com/p/ede2bbabf802


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消