将行转换为pyspark中的列

时间:2019-07-26 17:38:08

标签: pyspark-sql

我有数据框track_log,列在其中

项目track_info日期

1已订购19/01/19 1已发货19/02/01 1则于19年3月1日交付

我想获取数据

已订购商品已发货已交付

1 01/01/19 01/01/19 01/01/19

需要使用pyspark解决此问题

2 个答案:

答案 0 :(得分:0)

我可以想到这样的解决方案:

var user = User()

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    if let windowScene = scene as? UIWindowScene {
        let window = UIWindow(windowScene: windowScene)
        window.rootViewController = UIHostingController(rootView: ContentView()
            .environmentObject(user)
        )
        self.window = window
        window.makeKeyAndVisible()
    }
} 

答案 1 :(得分:0)

您可以使用Spark Pivot功能将其作为单个衬管进行操作,如下所示

>>> df.show()
+----+----------+--------+
|item|track_info|    date|
+----+----------+--------+
|   1|   ordered|01/01/19|
|   1|   Shipped|02/01/19|
|   1| delivered|03/01/19|
+----+----------+--------+
>>> pivot_df  = df.groupBy('item').pivot('track_info').agg(collect_list('delivered'))
>>> pivot_df.show()
+----+--------+--------+---------+
|item| ordered| Shipped|delivered|
+----+--------+--------+---------+
|   1|01/01/19|02/01/19| 03/01/19|
+----+--------+--------+---------+