我有两个吡火花数据,50 (列)*70万(行)的数据。
我想比较两个数据。对比较工具有什么建议吗?谢谢。
问候
发布于 2020-11-16 02:00:26
如果您想比较.exceptAll(with所有700 k行,那么使用内置于函数中的复制)(或) .subtract(without重复项来比较两个数据。
(or)
如果您希望只比较一些示例行,那么使用row_number函数和orderBy子句,然后选择只需要的行,然后使用.exceptAll (或) .subtract函数。
Example:
df=spark.createDataFrame([(1,'a'),(2,'b')],['id','name'])
df1=spark.createDataFrame([(1,'a')],['id','name']
from pyspark.sql.functions import *
df.exceptAll(df1).show()
#+---+----+
#| id|name|
#+---+----+
#| 2| b|
#+---+----+
df1.exceptAll(df).show()
#+---+----+
#| id|name|
#+---+----+
#or if you need to check only specific columns
df.select("id").exceptAll(df1.select("id")).show()
#+---+
#| id|
#+---+
#| 2|
#+---+
df=spark.createDataFrame([(1,'a'),(2,'b'),(1,'a')],['id','name'])
df.subtract(df1).show()
#+---+----+
#| id|name|
#+---+----+
#| 2| b|
#+---+----+
df.exceptAll(df1).show()
#+---+----+
#| id|name|
#+---+----+
#| 2| b|
#| 1| a|
#+---+----+https://stackoverflow.com/questions/64851740
复制相似问题