我有一个pyspark数据帧
DOCTOR | PATIENT
JOHN | SAM
JOHN | PETER
JOHN | ROBIN
BEN | ROSE
BEN | GRAY
Run Code Online (Sandbox Code Playgroud)
并需要按行连接患者姓名,以便我得到如下输出:
DOCTOR | PATIENT
JOHN | SAM, PETER, ROBIN
BEN | ROSE, GRAY
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我在pyspark中创建这个数据帧吗?
提前致谢.
我使用以下代码创建了一个PySpark数据框
testlist = [
{"category":"A","name":"A1"},
{"category":"A","name":"A2"},
{"category":"B","name":"B1"},
{"category":"B","name":"B2"}
]
spark_df = spark.createDataFrame(testlist)
Run Code Online (Sandbox Code Playgroud)
结果:
category name
A A1
A A2
B B1
B B2
Run Code Online (Sandbox Code Playgroud)
我想使其显示如下:
category name
A A1, A2
B B1, B2
Run Code Online (Sandbox Code Playgroud)
我尝试了以下无效的代码
spark_df.groupby('category').agg('name', lambda x:x + ', ')
Run Code Online (Sandbox Code Playgroud)
谁能帮助您确定我做错了什么以及实现这一目标的最佳方法?
我正在尝试通过 pyspark 构建 sql 来实现这一点。目标是将多行组合成单行示例:我想将其转换为
+-----+----+----+-----+
| col1|col2|col3| col4|
+-----+----+----+-----+
|x | y | z |13::1|
|x | y | z |10::2|
+-----+----+----+-----+
Run Code Online (Sandbox Code Playgroud)
到
+-----+----+----+-----------+
| col1|col2|col3| col4|
+-----+----+----+-----------+
|x | y | z |13::1;10::2|
+-----+----+----+-----------+
Run Code Online (Sandbox Code Playgroud)