我有两个数据帧A和B,如:
A Dataframes is:
+----+-----+
| k| v|
+----+-----+
|key1|False|
|key2|False|
|key3|False|
|key4|False|
|key5|False|
|key6|False|
+----+-----+
B Dataframes is:
+----+----+
| k| v|
+----+----+
|key2|True|
|key3|True|
+----+----+
我想用K列连接A和B表,并计算v列,结果如:
+----+-----+
| k| v|
+----+-----+
|key1|False|
|key2|True |
|key3|True |
|key4|False|
|key5|False|
|key6|False|
+----+-----+
我认为代码如下:
A.join(B,'k','left_out')
但是,我不知道如何计算列v。
我借用@Vitaliy Kotlyarenko的想法来修改我的代码:
from pyspark.sql import functions as F
A.join(B,'k','left_out').withColumn('value', F.col('v') & F.col('v')).drop('v')
答案 0 :(得分:2)
您可以使用withColumn方法
A.join(B,'k','left_out')
.withColumn('value', A.col('v') and A.col('v'))
.select(A.col('id'), col('value'))
我不确定上面示例的语法正确性 - 它是用Scala编写并转换为Python的,但它应该提供这个想法。