Dataframe:获取表A中存在但不在表B中的记录计数。表B有2900万条记录。(派斯帕克) 表A-是一个数据帧,当 distinct应用了14000条记录。 表B是一个数据帧,只有1列,2900万条记录了所有不同的值。

Dataframe:获取表A中存在但不在表B中的记录计数。表B有2900万条记录。(派斯帕克) 表A-是一个数据帧,当 distinct应用了14000条记录。 表B是一个数据帧,只有1列,2900万条记录了所有不同的值。,dataframe,apache-spark,pyspark,apache-spark-sql,Dataframe,Apache Spark,Pyspark,Apache Spark Sql,我需要获得表A中的记录数,但表B中没有。但在PySpark shell本地模式下运行下面的查询时,不知何故我遇到了下面的错误 Table_A Table_B 123450 123451 123452 123452 123453 123453 123454 123454 123455 123456 123457

我需要获得表A中的记录数,但表B中没有。但在PySpark shell本地模式下运行下面的查询时,不知何故我遇到了下面的错误

Table_A         Table_B
123450          
123451
123452          123452
123453          123453
123454          123454
                123455
                123456
                123457
预期产出:- 二,

在此之后,我得到以下错误:-

R_join.count()
20/06/14 22:03:15 WARN TaskMemoryManager: Failed to allocate a page (1073741824 bytes), try again.
20/06/14 22:03:16 WARN TaskMemoryManager: Failed to allocate a page (1073741824 bytes), try again.
内部联接工作正常。尝试计数,在内部联接的df上显示n=5 在获得join count后,我打算筛选中不存在的记录 表B,然后获取新的_DF的计数,但中间有错误。
有人能告诉我这是正确的方法还是我做错了什么吗?

您可以通过运行减号查询或在dataframe API中使用Exceptal来实现这一点

只需确保列别名相同,并且两个dataframe由相同的架构组成

DB_accnum=spark.sqlselect org_acctnum,从表A中选择“某些筛选条件” ACC_repository=spark.sqlselect account_num as Id from Table_B DB\u accnum\u d=DB\u accnum。选择col'org\u acctnum'。别名'Id'。不同 差异=DB_accnum_d.exceptAllACC_存储库 差异将包含DB_accnum_d中存在而ACC_存储库中不存在的帐号 差分计数 差异
您可以通过运行减号查询或在DataFrameAPI中使用Exceptal来实现这一点

只需确保列别名相同,并且两个dataframe由相同的架构组成

DB_accnum=spark.sqlselect org_acctnum,从表A中选择“某些筛选条件” ACC_repository=spark.sqlselect account_num as Id from Table_B DB\u accnum\u d=DB\u accnum。选择col'org\u acctnum'。别名'Id'。不同 差异=DB_accnum_d.exceptAllACC_存储库 差异将包含DB_accnum_d中存在而ACC_存储库中不存在的帐号 差分计数 差异
您是否已经在没有广播的情况下运行了表DB_accnum_d?是的,我在没有广播的情况下运行了,得到了相同的错误@KafelsDid您是否已经在没有广播的情况下运行了表DB_accnum__d?是的,我在没有广播的情况下运行过,得到了相同的错误@KafelsWhat是您的spark版本Difference=DB\u accnum\u d.Exceptallac\u存储库尝试过它。获取错误AttributeError:“DataFrame”对象没有属性“exceptAll”,然后尝试difference=DB\u accnum\u d.subtractACC\u存储库,但在运行count difference.count时出现相同错误警告TaskMemoryManager:未能分配页1073741824字节,请重试@shubham spark版本是-版本2.3.0.2.6.5.0-292公园版本-2.3.0.2.6.5.0-292例外所有都是2.4独有的。我将删除我的答案您的群集大小是多少?另外,您刚刚收到一条警告,请保持运行,并查看是否得到结果spark versiondifference=DB\u accnum\u d.exceptAllACC\u存储库尝试了它。获取错误AttributeError:“DataFrame”对象没有属性“exceptAll”,然后尝试difference=DB\u accnum\u d.subtractACC\u存储库,但在运行count difference.count时出现相同错误警告TaskMemoryManager:未能分配页1073741824字节,请重试@shubham spark版本是-版本2.3.0.2.6.5.0-292公园版本-2.3.0.2.6.5.0-292例外所有都是2.4独有的。我将删除我的答案您的群集大小是多少?此外,您刚刚收到一条警告,请保持运行,并查看是否得到结果
R_join.count()
20/06/14 22:03:15 WARN TaskMemoryManager: Failed to allocate a page (1073741824 bytes), try again.
20/06/14 22:03:16 WARN TaskMemoryManager: Failed to allocate a page (1073741824 bytes), try again.