如何将XNOR操作应用于行到两个数据帧

时间:2018-12-10 14:42:12

标签: python dataframe hive pyspark

我已经阅读文档了几个小时,我觉得我的思维方式错误了。

我在HIVE中有两个用(spark.table(table_A))读取的表,它们的列数和类型相同,但来源不同,因此它们的数据不同。这两个表都反映了显示是否满足条件的标志。至少大约有20列,并且将来可能会增加。

如果table_A的第一行是0 0 1 1 0 table_B可能是0 1 0 1 0我希望结果是XNOR的结果,比较位置,因此:1 0 0 1 1 ,因为它在第一,第四和第五位置具有相同的值

所以我想到了XNOR操作,如果两个值都匹配,则返回1,否则返回0。

我遇到了许多问题,其中一个是数据量(现在我正在使用1周的样本,它已经达到300MB的标记),所以我正在使用pyspark并避免使用熊猫因为它通常不适合内存使用和/或使操作滞后很多。

总结起来,我有两个pyspark.sql.dataframe.DataFrame类型的对象,每个对象都有一个表,到目前为止,我得到的最好的东西是这样的:

df_bitwise = df_flags_A.flag_column_A.bitwiseXOR(df_flags_B.flag_columns_B)

但是可悲的是,它返回一个pyspark.sql.column.Column,我不知道如何读取该结果,也不知道以此来构建数据帧(我希望最终结果是上述结果的20倍左右)操作,每一列一个,每个形成一个数据帧的一列。

我在做错什么,因为我觉得这不是正确的方法。

0 个答案:

没有答案