如何在Apache Spark中跨列创建RDD分区?

时间:2016-06-17 07:53:47

标签: scala csv apache-spark bigdata

我有一个csv文件,如下所示:

时间(秒)测量1测量2测量3 .....测量

0

0.25

0.50

0.75

1

...

3600

我希望在此文件中创建自定义分区,以使分区如下所示:

Partition1

时间(以秒为单位)measure1

分区2

时间(以秒为单位)measure2

...

Partitionn

时间(以秒为单位)测量

我想这样做,因为我想计算每次测量的平均值,中位数等聚合。

我的想法是,如果我使用mapPartitions来执行操作,例如在一个分区上,它将在所有分区的parellel中发生。

我希望避免使用groupBy columnn值,因为它会导致重排操作

有没有办法实现这个目标?

谢谢。

此致

Vinay Joglekar

1 个答案:

答案 0 :(得分:0)

我会这样做:

  1. 一个函数,它将文件作为输入,然后读取4行并合并您选择的某些集合类型中的那些并生成它。这将是一个,直到没有任何东西可以从文件中读取。
    1. 映射该函数的输出,并转动(例如List是您选择的集合),将列表放入DataFrame中。
    2. 然后使用describe()或任何其他聚合函数执行任何操作。