如何将df单元中的数组转换为单独的列名?

索米尔·阿塞贾

我无法在DF以下转换:

 | A | B |     C   |     
 | 1 | 2 | t1,t2,t3|     
 | 1 | 3 | t4,t5   |     
 | 2 | 2 | t1,t5   |

到DF以下:

| A | B | t1 | t2 | t3 | t4 | t5 | 
| 1 | 2 | 1  | 1  | 1  | 0  | 0  | 
| 1 | 3 | 0  | 0  | 0  | 1  | 1  | 
| 2 | 2 | 1  | 0  | 0  | 0  | 1  |

在斯卡拉火花中。

C中的值以逗号分隔,我希望它使它们成为独立的列。一旦做到这一点我想,如果那个特定行标记0和1 t1t2等的存在与否。

请在这里帮助。会真的很感激。

ido堂

可以使用来完成pivot然而,第一分割上的数据“”和explodeC列。

df.withColumn("C", explode(split($"C", ",")))
  .groupBy("A", "B")
  .pivot("C")
  .count()
  .na.fill(0)

结果:

+---+---+---+---+---+---+---+
|  A|  B| t1| t2| t3| t4| t5|
+---+---+---+---+---+---+---+
|  2|  2|  1|  0|  0|  0|  1|
|  1|  2|  1|  1|  1|  0|  0|
|  1|  3|  0|  0|  0|  1|  1|
+---+---+---+---+---+---+---+

上述解决方案假定所有的行具有的值的唯一组合中AB(由于使用的groupBy)。如果不是这种情况,则需要执行其他步骤:

添加一个新列一个唯一的ID可与使用A,并BgroupBy,例如:

df.withColumn("D", monotonically_increasing_id)

可以在之后删除此列pivot

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将 JSON 数组转换为单独的值以插入到我的 SQL 表中?

如何将df中的双引号向量转换为numpy数组?

如何将具有相同键的数组中的对象转换为同一数组中自己的单独对象

如何将字符串转换为配置单元中的结构数组并爆炸?

如何将逗号分隔的数组转换为配置单元中的行

在MATLAB中:如何将结构的嵌套字段转换为单元格数组?

如何将Pandas DataFrame的列转换为单独的dict,其中dictnames为列名?

如何将数组中的数组转换为数组对象

如何将 DF 转换为字符串/数组,然后再转换回 DF?

如何将字典转换为 DF

如何将结构的单元格数组转换为单元格数组

如何将 JSON 数组转换为 PHP 中的数组?

如何将数组数组转换为 Julia 中的矩阵?

如何将发出数组的 observable 转换为单独发出数组的每个值的 observable?

如何将逗号分隔的数据帧单元格中的值转换为Julia中的数组?

如何将单独的int值转换为十六进制字节数组

如何将数组项转换为SnapLogic中的对象

在Gatling / Scala中,如何将jsonPath转换为数组?

如何将JSON数组转换为Postgres中的行

如何将JS中的数组转换为这种格式

如何将数组中的字段转换为单个对象

如何将CSS代码转换为JavaScript中的数组

如何将数组对象转换为JavaScript中的参数

如何将多维数组转换为对象中的arr

如何将Mongodb文档中的数组转换为JsonArray

如何将变量中的值转换为数组索引

如何将数组转换为 PHP 中的函数?

如何将csv中的行转换为double数组?

如何将 json 数组转换为 postgresql 中的行