我有一个数据框,有3列,如下所示:
+-------+--------------------+-------------+
| id | reports | hash |
+-------+--------------------+-------------+
|abc | [[1,2,3], [4,5,6]] | 9q5 |
|def | [[1,2,3], [4,5,6]] | 9q5 |
|ghi | [[1,2,3], [4,5,6]] | 9q5 |
|lmn | [[1,2,3], [4,5,6]] | abc |
|opq | [[1,2,3], [4,5,6]] | abc |
|rst | [[1,2,3], [4,5,6]] | abc |
+-------+--------------------+-------------+
现在我的问题是我需要限制每个散列的行数。
我在想我可以转换散列。 9q5 in 9q5_1
对于前1k排, 9q5_2
对于第二个1k,依此类推,对于散列中的每个值。
有一个类似的帖子,但它是不同的,那里的Dataframe是分裂的,我想保留一个单一的和改变键值。
关于如何做到这一点有什么建议吗?谢谢
1条答案
按热度按时间vd8tlhqk1#
我找到了解决办法。我使用window函数创建一个新列,其中geohash列中的每个值都有一个增量索引。然后,我应用一个udf函数,该函数根据原始的geohash和索引合成我需要的新哈希值geohash'\ux。
结果是:
编辑:史蒂文的回答也非常有效