首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以随机顺序将数据写入hdfs csv?

如何以随机顺序将数据写入hdfs csv?
EN

Stack Overflow用户
提问于 2018-07-20 05:12:30
回答 1查看 1.1K关注 0票数 0

我想给hdfs写一个数据文件。但是随机排序非常缓慢,尽管只有1700万个数据行。

代码语言:javascript
复制
df = df.withColumn('random_index',rand())
df = df.orderBy('random_index')

df.write.csv('hdfs:///user/yananc/yanan_gbdt_dnn', sep=',')

有什么快速有效的方法来实现这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-20 06:04:12

使用orderBy将对数据rows的所有分区进行行排序。由于您只对行进行洗牌感兴趣,所以可以转而使用sortWithinPartitions。这种方法不需要对数据进行洗牌,所以速度更快:

代码语言:javascript
复制
df.sortWithinPartitions(rand())

当然,取决于数据,这不会给数据一个完全随机的顺序。这取决于如何跨分区分配行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51435475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档