Apache spark 基于PySpark中列值的RDD/Dataframe映射片

Apache spark 基于PySpark中列值的RDD/Dataframe映射片,apache-spark,pyspark,rdd,spark-dataframe,Apache Spark,Pyspark,Rdd,Spark Dataframe,我有一个数据帧,如下所示: timestamp key value 2016-06-29 A 88 2016-06-28 A 89 2016-06-27 A 90 2016-06-29 B 78 2016-06-28 B 79 2016-06-27 B 80 2016-06-29 C 98 2016-06-27 C 99 目标是以有效的方式将其转换为panda.Series的RDD。因此,我希望: (A, pandas.Se

我有一个数据帧,如下所示:

timestamp   key  value
2016-06-29   A   88
2016-06-28   A   89
2016-06-27   A   90
2016-06-29   B   78
2016-06-28   B   79
2016-06-27   B   80
2016-06-29   C   98
2016-06-27   C   99
目标是以有效的方式将其转换为panda.Series的RDD。因此,我希望:

(A, pandas.Series)
(B, pandas.Series)
(C, pandas.Series)
所以我想对数据帧的一个片段进行操作,该片段具有相同的键,并为每个片段提供一个元组(key,pandas.Series)作为输出

已经尝试过的事情/想法:

  • Spark ts似乎非常适合此用途,但python版本似乎已经过时
  • 尝试了一个窗口函数,但不适合这种情况
  • 与其批量读取,不如基于键读取转换为panda.Series并重复。太慢-不可行

  • 有什么想法/建议可以快速高效地实现这一目标吗?

    快速高效?-当然不是。要获得
    pandas.Series
    您必须以这样或那样的方式移动和分组数据,不管您是如何处理的。那么,让我们重新表述一下,任何方式都可以并行执行,使用spark功能而不是迭代执行吗?
    df.rdd.groupByKey.mapValues(MakeSseries)
    where
    makesSeries
    提取索引并将所有内容转换为熊猫。但是,除非群组很小,否则它肯定不会有效率。你为什么认为窗口功能不合适?(不是创建系列,而是一般)快速高效?-当然不是。要获得
    pandas.Series
    您必须以这样或那样的方式移动和分组数据,不管您是如何处理的。那么,让我们重新表述一下,任何方式都可以并行执行,使用spark功能而不是迭代执行吗?
    df.rdd.groupByKey.mapValues(MakeSseries)
    where
    makesSeries
    提取索引并将所有内容转换为熊猫。但是,除非群组很小,否则它肯定不会有效率。你为什么认为窗口功能不合适?(不创建系列,但一般情况下)