0

我有两个Dataframes 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| 
+----+----+ 

我想加入A和B表k个列,并计算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') 

回答

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,但它应该给出这个想法。