[英]How to compare the counts of two dataframes in PySpark?
我正在使用 PySpark 從數據幀中構建臨時視圖。 作為其中的一部分,我想知道如何比較兩個數據幀的計數,如果它們不匹配,則拋出錯誤。
我的代碼如下所示:
df1 = spark.sql ("""SELECT Col1, Col2, Col3, Col4, Col5 FROM Table1""")
df1.createOrReplaceTempView("df1")
df2 = spark.sql ("""SELECT Col1, Col2 FROM Table2""")
df2.createOrReplaceTempView("df2")
df_join = spark.sql ("""SELECT Table1.Col1, Table1.Col2 FROM Table1 LEFT OUTER JOIN Table2 ON Table1.Col1 = Table2.Col1""")
df_join .createOrReplaceTempView("df_join")
df1 和 df_join 的計數應該始終匹配。 所以,我想比較這兩個數據幀之間的計數,如果不匹配則拋出錯誤。
請在這里尋求幫助...
從連接中,添加帶有條件的計數。
df_join = spark.sql("""
SELECT
Table1.Col1,
Table1.Col2,
count(Table1.Col1) as CountDF1,
count(IF(Table2.Col1 is not null, 1)) as CountDF2
FROM
Table1
LEFT OUTER JOIN
Table2
ON
Table1.Col1 = Table2.Col1
""")
並比較這兩個計數。
或者你可以簡單地比較一下:
df1.count() == df2.count()
DataFrame object 有 count() 方法: https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.883688262367878.8388.8382
所以它會很簡單:
if df1.count() != df_join.count():
raise ValueError('Dataframes counts doesnt match')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.