如何在Python中的Apache Spark DataFrame中消除标题和尾部

问题描述

我的数据框看起来像下面的.dat格式

_c0
This*is*header
siva*2121*123821*3123
sankar*2121*123821*3123
hraju*2121*123821*3123
santhi*2121*123821*3123
This*is*trailer

我要删除第一行This 标题,最后一行This 尾部,这里的'*'是定界符。我想创建如下具有4列的数据框。请在python pyspark lbrary中提供解决方

以表格格式的预期输出

C1     C2     C3       C4
siva   2121   123821   3123
sankar 2121   123821   3123
hraju  2121   123821   3123
santhi 2121   123821   3123

解决方法

如果标题和尾部的拆分计数不同,则可以按计数进行过滤。

df.withColumn('array',split('_c0','\*')) \
  .withColumn("count",size('array')) \
  .filter('count > 3') \
  .select(*[col('array')[i].alias('col' + str(i)) for i in range(0,4)]) \
  .show()

+------+----+------+----+
|  col0|col1|  col2|col3|
+------+----+------+----+
|  siva|2121|123821|3123|
|sankar|2121|123821|3123|
| hraju|2121|123821|3123|
|santhi|2121|123821|3123|
+------+----+------+----+