pyspark 尝试通过Python仅透视半个数据集

d7v8vwbk  于 2023-11-16  发布在  Spark
关注(0)|答案(1)|浏览(114)

我有一个有趣的情况,我需要枢轴(如果这是实际的术语)的一些数据,但有效地只有一半的数据集,如

  • 当前示例数据集 *
    **姓名-地址--

乔·布劳格斯-舰队街2号-270784-7-25.6-14
皮特·格里比--32 Egg Road--050577-13-21.6-11

  • 所需输出 *
    **名称-

乔·布劳格斯-2舰队街-270784-印第安纳州1
乔·布劳格斯-2舰队街-270784-25.6-印第安纳州2
乔·布劳格斯-2舰队街-270784--14--印第安纳州3
皮特·格里比--32 Egg Road-050577-13-Ind 1
皮特·格里比--32 Egg Road-050577-21.6-Ind 2
皮特·格里比--32 Egg Road-050577--11--Ind 3
我通常不是一个Python的人,事实上对它的经验很少,但由于我目前使用的技术,我不能使用.Net Spark。
我试图在C#中模拟一些东西来感受所需的过程,主要是获取“Ind”列,旋转它们,然后使用重复数据创建一个新的数据集,但这只是变得丑陋。
我也看了一下explode函数,虽然这里有类似的问题,但在这个例子中不太明白如何让事情移动
所以我的问题是,有没有人在Python中有任何要点/建议/代码片段来帮助解决这个难题?
问候

z9ju0rcb

z9ju0rcb1#

您可以使用下面的反透视表达式来获得所需的结果。

df.select("Name", "Address", "DOB",expr("stack(3,'Ind1',cast(Ind1 as  double),'Ind2', cast(Ind2 as  double),'Ind3',cast(Ind3 as  double)) as (ColName,Value)"))

字符串


的数据

相关问题