当前位置:  开发笔记 > 编程语言 > 正文

Apache Spark按用户ID排序分区,并将每个分区写入CSV

如何解决《ApacheSpark按用户ID排序分区,并将每个分区写入CSV》经验,为你挑选了0个好方法。

我有一个使用Spark似乎相对简单的用例,但似乎无法找到一个确定的方法来做到这一点.

我有一个数据集,其中包含各种用户的时间序列数据.我要做的就是:

按用户标识对此数据集进行分区

对每个用户的时间序列数据进行排序,然后应该将其包含在各个分区中,

将每个分区写入单个CSV文件.最后,我希望每个用户ID最终得到1个CSV文件.

我尝试使用以下代码片段,但最终得到了令人惊讶的结果.我最终得到每个用户ID 1个csv文件,一些用户的时间序列数据最终得到排序,但很多其他用户都没有排序.

# repr(ds) = DataFrame[userId: string, timestamp: string, c1: float, c2: float, c3: float, ...]
ds = load_dataset(user_dataset_path)
ds.repartition("userId")
    .sortWithinPartitions("timestamp")
    .write
    .partitionBy("userId")
    .option("header", "true")
    .csv(output_path)

我不清楚为什么会发生这种情况,我不完全确定如何做到这一点.我也不确定这是否可能是Spark中的一个错误.

我正在使用Spark 2.0.2和Python 2.7.12.任何建议将非常感谢!

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有