【发布时间】:2017-10-17 21:15:23
【问题描述】:
我有一张这样的桌子:
+-----+----+-------+-------+
|name | id | msg_a | msg_b |
+-----+----+-------+-------+
| a| 3|[a,b,c]|[c] |
| b| 5|[x,y,z]|[h,x,z]|
| c| 7|[a,x,y]|[j,x,y]|
+-----+----+-------+-------+
我想添加一个列,以便显示 msg_b 中但不是 msg_a 中的任何内容。
例如
+-----+----+-------+-------+------------+
|name | id | msg_a | msg_b | difference |
+-----+----+-------+-------+------------+
| a| 3|[a,b,c]|[c] |NA |
| b| 5|[x,y,z]|[h,x,z]|[h] |
| c| 7|[a,x,y]|[j,x,y]|[j] |
+-----+----+-------+-------+------------+
参考previous post,我试过了
df.select('msg_b').subtract(df.select('msg_a')).show()
可行,但我需要将信息作为表格,name 和 id
这样做:
df.withColumn("difference", F.col('msg_b').subtract(F.col(''msg_a'))).show(5)
产生一个TypeError: 'Column' object is not callable
不确定是否有单独的函数来执行此操作,如果我遗漏了一些明显的东西,等等。
【问题讨论】:
标签: apache-spark pyspark spark-dataframe