Java 使用Spark在两个数据帧中查找相似列

Java 使用Spark在两个数据帧中查找相似列,java,apache-spark,apache-spark-mllib,Java,Apache Spark,Apache Spark Mllib,我有两个数据帧,其中有些数据如下 +-------+--------+------------------+---------+ |ADDRESS|CUSTOMER| CUSTOMERTIME| POL | +-------+--------+------------------+---------+ | There| cust0|3069.4768999023245|578596829| | There| cust0|3069.4768999023245|4383

我有两个
数据帧
,其中有些数据如下

+-------+--------+------------------+---------+
|ADDRESS|CUSTOMER|      CUSTOMERTIME|   POL   |
+-------+--------+------------------+---------+
|  There|   cust0|3069.4768999023245|578596829|
|  There|   cust0|3069.4768999023245|43831451 |
|   Here|   cust1| 15.29206776391711|578596829|
|  There|   cust0|3069.4768999023245|43831451 |
|   Here|   cust1| 15.29206776391711|578596829|
|   Here|   cust4| 32.04741866436953|43831451 |
+-------+--------+------------------+---------+


现在,我想比较这两个数据帧,以找到匹配的列,我可以在下一步将这些
数据帧
连接起来(在这种情况下,它将是
策略
POL
)。有什么算法或其他方法可以预测吗?

给定
df1
df2
您可以通过

df1 = sc.parallelize([('1',),('2',)]).toDF(['a'])
df2 = sc.parallelize([('1','2'),('2','3')]).toDF(['a','b'])

>>>set(df1.columns).intersection(set(df2.columns))
set(['a'])

>>>list(set(df1.columns).intersection(set(df2.columns)))
['a']
这应该会有所不同

>>> list(set(df1.columns).symmetric_difference(set(df2.columns)))
['b']

它能在
pyspark
中吗?@Bala我正在寻找一种方法,在两个数据帧中找到我可以连接的列。如果列名也不同怎么办?我需要一些可以比较数据和预测列的东西?我编辑了我的帖子以避免混淆。对答案进行了更改。前面的代码错误。只有列名相同ryt?时,此代码才会提供?。在我的例子中,根本没有匹配的列名。如果两个列具有相同的值(例如,first_name、last_name),那么这将非常昂贵,并且准确性将很低
>>> list(set(df1.columns).symmetric_difference(set(df2.columns)))
['b']