【问题标题】:Finding Similar columns in two dataframes using Spark使用 Spark 在两个数据框中查找相似的列
【发布时间】:2018-07-13 00:21:38
【问题描述】:

我有两个DataFrames,其中有一些这样的数据,

+-------+--------+------------------+---------+
|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 |
+-------+--------+------------------+---------+

 +---------+------------------+------------------+-----+-----+
 |   POLICY|     POLICYENDTIME|   POLICYSTARTTIME|PVAR0|PVAR1|
 +---------+------------------+------------------+-----+-----+
 |578596829|3599.3427299724353|13.433243831334922|    2|    0|
 |578596829|3599.3427299724353|13.433243831334922|    2|    0|
 | 43831451|3712.2672901111655|1744.9884452423225|    0|    6|
 |578596829|3599.3427299724353|13.433243831334922|    2|    0|
 | 43831451|3712.2672901111655|1744.9884452423225|    0|    6|
 | 43831451|3979.2754016079016|3712.2672901111655|    0|    5|
 +---------+------------------+------------------+-----+-----+

现在我想比较这两个数据框以找到匹配的列,我可以在下一步中加入这些DataFrames(在这种情况下它将是POLICYPOL)。有什么算法或其他方法可以预测吗?

【问题讨论】:

  • 可以在pyspark吗?
  • @Bala 我正在寻找一种方法来找到我可以加入的两个数据框中的列。所以欢迎任何事情

标签: java apache-spark apache-spark-mllib


【解决方案1】:

给定df1df2,您可以通过

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']

【讨论】:

  • 如果列名也不同怎么办?我需要一些可以比较数据和预测列的东西吗?我已经编辑了我的帖子以避免混淆。
  • 对答案进行了更改。之前的代码是错误的。
  • 只有在列名相同的情况下才会提供 ryt?。就我而言,根本没有匹配的列名。
  • 如果两列具有相同的值(例如,名字,姓氏),那将太昂贵并且准确性会很低
猜你喜欢
  • 2020-04-30
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多