尝试通读我们收到的交叉表报告,并获取文件中可用记录的总数。
样本报告格式
+----------------+------+------+------+------+------+------+------+
| Cross-Tab File | | | | | | | |
| | | | Col1 | Col2 | Col3 | Col4 | Col5 |
| Row1 | Row2 | Row3 | Row4 | Row5 | | | |
| V1 | V2 | V3 | V4 | V5 | | | |
| V11 | V12 | V13 | V14 | V15 | | | |
+----------------+------+------+------+------+------+------+------+
因此,我们正在尝试实现数据的交叉乘法以获取记录数。必须将列Col1,Col2,Col3 .....的计数乘以Row3值的计数,即V3,V13 ...等。因此,在这种情况下,将是5 Col的* 2 Row3的,等于10。
尝试了类似下面的代码,但这似乎只是获取文件中的记录行。
df_count = df_file \
.groupBy("V1", "V2") \
.agg(count(lit(1)).alias("COUNT")) \
.withColumn("DATA_COUNT",
col("COUNT")
- ((1 if self.header_exists else 0)
+ (1 if self.trailer_exists else 0)))
该作业将用于处理多个文件。