Pyspark-在groupBy中分配每个组[重复]-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Pyspark-在groupBy中分配每个组[重复]

2018-12-19 16:35:37 3031 1

我想在一个组中为每个组分配一个从0或1开始的唯一ID号,并使用pyspark为每个组递增1。

我之前使用pthon与python一起完成了这个命令:

df['id_num'] = (df

            .groupby('column_name')
            .grouper
            .group_info[0])

输入和所需输出的玩具示例是:

输入

object
apple
orange
pear
berry
apple
pear
berry

输出:

objectid
apple1
orange2
pear3
berry4
apple1
pear3
berry4
取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:23:01

    from pyspark.sql.functions import col, create_map, lit
    from itertools import chain
    values = [('apple',),('orange',),('pear',),('berry',),('apple',),('pear',),('berry',)]
    df = sqlContext.createDataFrame(values,['object'])

    Creating a column of distinct elements and converting them into dictionary with unique indexes.

    df1 = df.distinct()
    distinct_list = list(df1.select('object').toPandas()['object'])
    dict_with_index = {distinct_list[i]:i+1 for i in range(len(distinct_list))}

    Applying the mapping of dictionary.

    mapping_expr = create_map([lit(x) for x in chain(*dict_with_index.items())])
    df=df.withColumn("id", mapping_expr.getItem(col("object")))

    df.show()
    objectid
    apple2
    orange1
    pear3
    berry4
    apple2
    pear3
    berry4

    +------+---+

    0 0
相关问答

3

回答

专有云升级aliyun-python-sdk-core后报错。而location-readonly.aliyuncs.com域名可以通过curl访问。

萌萌怪兽 2018-10-15 20:46:31 51809浏览量 回答数 3

6

回答

osscmd,一条命令上传和下载的python工具

wood23 2012-06-30 12:08:18 40245浏览量 回答数 6

5

回答

设置跨域资源共享CORS并使用JS表单PostObject直接上传到OSS

wood23 2015-02-12 08:11:09 40830浏览量 回答数 5

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 147288浏览量 回答数 22

41

回答

OSS FTP工具发布啦

oss-dev 2015-12-23 16:58:56 66224浏览量 回答数 41

42

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 137201浏览量 回答数 42

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305721浏览量 回答数 249

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 475910浏览量 回答数 24

30

回答

基础语言百问-Python

薯条酱 2017-05-17 18:01:13 65234浏览量 回答数 30

21

回答

OSS新手视频教程!

聚小编 2013-01-14 18:09:51 58328浏览量 回答数 21
+关注
社区小助手
社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。
12
文章
824
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载