在groupByKey或groupBy之后形成列列表

穆萨

我有这个输入DataFrame

input_df:

| C1 | C2 | C3 |
| ------------- |
| A | 1 | 12/06/2012 |
| A | 2 | 13/06/2012 |
| B | 3 | 12/06/2012 |
| B | 4 | 2012年6月17日|
| C | 5 | 14/06/2012 |
| ---------- |

转换后,我想按C1进行这种DataFrame分组,并创建C4列,其列由C2和C3的一对列表构成

output_df:

| C1 | C4 |
| --------------------------------------------- |
| A | (1,12/06/2012),(2,12/06/2012)|
| B | (3,12/06/2012),(4,12/06/2012)|
| C | (5,12/06/2012)|
| --------------------------------------------- |

当我尝试这样做时,我接近结果:

val output_df = input_df.map(x => (x(0), (x(1), x(2))) ).groupByKey()

我得到这个结果

(A,CompactBuffer((1, 12/06/2012), (2, 13/06/2012)))    
(B,CompactBuffer((3, 12/06/2012), (4, 17/06/2012)))   
(C,CompactBuffer((5, 14/06/2012)))

但是我不知道如何将其转换为DataFrame,这是否是实现此目标的好方法。
即使有其他方法,也欢迎任何建议

霍辛·布泽拉特(Hocine BOUZELAT)

//请尝试一下

val conf = new SparkConf().setAppName("groupBy").setMaster("local[*]")
val sc = new SparkContext(conf)
sc.setLogLevel("WARN")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._

val rdd = sc.parallelize(
  Seq(("A",1,"12/06/2012"),("A",2,"13/06/2012"),("B",3,"12/06/2012"),("B",4,"17/06/2012"),("C",5,"14/06/2012")) )

val v1 = rdd.map(x => (x._1, x ))
val v2 = v1.groupByKey()
val v3 = v2.mapValues(v => v.toArray)

val df2 = v3.toDF("aKey","theValues")
df2.printSchema()

val first = df2.first
println (first)

println (first.getString(0))

val values = first.getSeq[Row](1)

val firstArray = values(0)

println (firstArray.getString(0)) //B
println (firstArray.getInt(1)) //3
println (firstArray.getString(2)) //12/06/2012

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在GroupByKey之后减少PCollection

来自分类Dev

熊猫,在groupby之后创建列

来自分类Dev

包含列表的 groupby 列

来自分类Dev

pyspark中groupBy之后的列别名

来自分类Dev

在groupby pandas之后测试多列

来自分类Dev

groupby之后如何过滤特定的列值?

来自分类Dev

groupby之后如何在Pandas中汇总向量列?

来自分类Dev

在GroupBy之后根据特定列对数据框进行排序

来自分类Dev

在groupby之后在熊猫中转置一些列

来自分类Dev

熊猫:如何在groupby和unstack之后删除索引列?

来自分类Dev

在groupby之后访问熊猫中的层次结构列

来自分类Dev

Pandas - 在 groupby 之后从嵌套标题中选择多列

来自分类Dev

Pyspark - 在 groupby 和 orderBy 之后选择列中的不同值

来自分类Dev

熊猫groupby有多个列,但是groupby之后需要在列中显示唯一值

来自分类Dev

熊猫groupby分别制作两列列表

来自分类Dev

python/dataframe - groupby 列创建列表

来自分类Dev

如何形成列表列表?

来自分类Dev

GroupBy之后的条件选择

来自分类Dev

groupby之后的熊猫Keyerror

来自分类Dev

如何在大熊猫的groupby()。mean()之后获取索引值列表?

来自分类Dev

使用.agg保持groupby之后的所有列(许多列)更有效

来自分类Dev

Spark scala 中 GroupByKey($"col") 和 GroupBy($"col") 的区别

来自分类Dev

Android:如何在GridView或RecyclerView中形成1-2-1列表项?

来自分类Dev

使用字符串导入 .dat 列列表以形成多个数组

来自分类Dev

Pandas-列中groupby之后的Concat字符串,忽略NaN,忽略重复项

来自分类Dev

reset_index()到大熊猫groupby()之后的原始列索引?

来自分类Dev

如何计算groupby和set_index之后的特殊列值的平均值

来自分类Dev

groupBy之后如何将列值聚合到数组中?

来自分类Dev

在Spark中的groupby之后,跨列收集大多数出现的唯一值

Related 相关文章

  1. 1

    在GroupByKey之后减少PCollection

  2. 2

    熊猫,在groupby之后创建列

  3. 3

    包含列表的 groupby 列

  4. 4

    pyspark中groupBy之后的列别名

  5. 5

    在groupby pandas之后测试多列

  6. 6

    groupby之后如何过滤特定的列值?

  7. 7

    groupby之后如何在Pandas中汇总向量列?

  8. 8

    在GroupBy之后根据特定列对数据框进行排序

  9. 9

    在groupby之后在熊猫中转置一些列

  10. 10

    熊猫:如何在groupby和unstack之后删除索引列?

  11. 11

    在groupby之后访问熊猫中的层次结构列

  12. 12

    Pandas - 在 groupby 之后从嵌套标题中选择多列

  13. 13

    Pyspark - 在 groupby 和 orderBy 之后选择列中的不同值

  14. 14

    熊猫groupby有多个列,但是groupby之后需要在列中显示唯一值

  15. 15

    熊猫groupby分别制作两列列表

  16. 16

    python/dataframe - groupby 列创建列表

  17. 17

    如何形成列表列表?

  18. 18

    GroupBy之后的条件选择

  19. 19

    groupby之后的熊猫Keyerror

  20. 20

    如何在大熊猫的groupby()。mean()之后获取索引值列表?

  21. 21

    使用.agg保持groupby之后的所有列(许多列)更有效

  22. 22

    Spark scala 中 GroupByKey($"col") 和 GroupBy($"col") 的区别

  23. 23

    Android:如何在GridView或RecyclerView中形成1-2-1列表项?

  24. 24

    使用字符串导入 .dat 列列表以形成多个数组

  25. 25

    Pandas-列中groupby之后的Concat字符串,忽略NaN,忽略重复项

  26. 26

    reset_index()到大熊猫groupby()之后的原始列索引?

  27. 27

    如何计算groupby和set_index之后的特殊列值的平均值

  28. 28

    groupBy之后如何将列值聚合到数组中?

  29. 29

    在Spark中的groupby之后,跨列收集大多数出现的唯一值

热门标签

归档