Apache spark 比较记录计数数据帧PypSpark

Apache spark 比较记录计数数据帧PypSpark,apache-spark,pyspark,pyspark-dataframes,Apache Spark,Pyspark,Pyspark Dataframes,我正在读一个文件,它的总计数也是最后的记录数。现在,我需要从文件中删除总计数,即最后的记录,然后对数据帧进行计数,并对总计数进行验证检查,例如: colA Colb 1 2 3 4 total count 000002 我正在使用下面的代码段,但断言错误引发了挑战 from pyspark.sql.types import StringType,IntegerTyp

我正在读一个文件,它的总计数也是最后的记录数。现在,我需要从文件中删除总计数,即最后的记录,然后对数据帧进行计数,并对总计数进行验证检查,例如:

colA                    Colb
1                        2
3                        4
total count 000002
我正在使用下面的代码段,但断言错误引发了挑战

from pyspark.sql.types import StringType,IntegerType
from pyspark.sql.functions import udf

udf1 = udf(lambda x:x[23:-1],StringType())
df.withColumn('DEST STR',udf1('colA')).display()
df.createOrReplaceTempView("temptable")
tableDF = spark.sql("SELECT `colA` FROM temptable order by `colA` desc limit 1")
display(tableDF)
assert df.count() == tableDF.select(udf1("colA"))

注意:ColA有总计数条目记录,我建议改为以下内容,以避免不必要地使用UDF

assert df.count() - 1 == int(df.select('colA').filter("colA rlike 'total count'").collect()[0][0].split()[-1])

我会这样做:

reference_count=int(df.where(“colA-like'total count%”)).first()[“colA”].split()[-1])
总数=df.count()-1
断言总计数==引用计数

这是什么:
x[23:-1]
?以及<代码> df>代码>是什么样子?x(23:-1)是用于从行总数00000到2的子字符串,只考虑这些数字,或者在这种情况下仅为2。DF与示例中的colA colB和ITB下的条目一样,但最后一行发生了什么?该行是否属于
df
?如果是,colB的值是多少?为什么是23岁?我在那一行没有看到23个字符。是的,那是属于df的,总计数只有在ColA下。ColB在第三行中有Null作为条目