读取交叉表文件以获取计数

时间:2018-08-09 16:25:17

标签: python apache-spark pyspark

尝试通读我们收到的交叉表报告,并获取文件中可用记录的总数。

样本报告格式

+----------------+------+------+------+------+------+------+------+
| 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)))

该作业将用于处理多个文件。

0 个答案:

没有答案