相同的分区:对于数据帧,以及稍后对于该数据帧的RDD

时间:2017-12-03 12:52:50

标签: apache-spark pyspark rdd partitioning

我在数据帧df:

上使用带有spec的多个窗口函数
windowSpec = \
  Window 
    .partitionBy(df['customID']) 

后来我使用:

df.rdd.map((x[0],x[0], x[1], x[2]))

and df.mapPartitions(some func)

创建我的数据帧的kv对并处理RDD上的分区。由于

x[0] = df.['customID'] 

在我的情况下,我想知道我如何工作/保持窗口规范已经使用的分区。在使用数据帧之后,这是处理RDD分区的最有效方法吗?

1 个答案:

答案 0 :(得分:0)

DataFrame转换为RDD并不需要随机播放,因此两个对象的分区内容都相同。但是,Partitioner不会被保留。

对于您的用例,这应该还是足够的,尽管vectroized udf可能是比RDD更好的选择。