通过其他键将列添加到具有非唯一 ID 的 pyspark 数据框

为标题道歉 - 不知道如何轻松总结我的问题。


我有一个包含 2 列、代码和 emp 的 pyspark 数据框。每个唯一的代码值都有多个 emp 值,如下所示。我希望添加一个列,为每个唯一的代码值应用一个递增的数字,例如下面的值列。我玩过monotonicallyIncreasingId(),并没有设法将其 id 创建限制为一个特定的代码键,实际上文档说索引不需要按顺序递增。


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

|code|emp|value|

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

|   a| 14|    1|

|   a| 22|    2|

|   a| 35|    3|

|   a| 64|    4|

|   b| 12|    1|

...

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

如果这对效率有任何影响,则每个代码值最多有 4 个 emp 值。索引应随着 emp 值的大小而增加 - 最低值应为 1,最高值为 n,其中 n 是具有特定代码的记录数。


偶然的你
浏览 155回答 3
3回答

慕容708150

对于 Scala,您可以创建一个带有增量索引列的数据框,如下所示:%scalaval rankedWordCount = sqlContext.sql("select row_number() over (order by some_numeric_value desc) as index_col,lower(info) as info, some_numeric_value from information_table")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python