如何在 python 中消除 apache spark 数据帧中的标头和尾标

Posted

技术标签:

【中文标题】如何在 python 中消除 apache spark 数据帧中的标头和尾标【英文标题】:How to eliminate header and trailer in apache spark dataframe in python 【发布时间】:2020-09-03 12:38:42 【问题描述】:

我的 .dat 格式的数据框如下所示

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

我想删除第一行 Thisisheader 和最后一行 Thisistrailer,这里的 '*' 是分隔符。我想用 4 列创建如下数据框。请在 python pyspark 库中提供解决方案

表格格式的预期输出:

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

【问题讨论】:

【参考方案1】:

如果 header 和 trailing 有不同的拆分计数,那么您可以按计数过滤。

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

【讨论】:

以上是关于如何在 python 中消除 apache spark 数据帧中的标头和尾标的主要内容,如果未能解决你的问题,请参考以下文章

在 Vue 客户端和服务器应用程序中如何消除对 CORS 的需要?

如何在POI XSSFWorkbook中消除零值数据条

apache_conf Apache上的SPA

python/zip:如果提供了文件的绝对路径,如何消除 zip 存档中的绝对路径?

带有scipy.spatial.Delaunay的Python凸包,如何消除船体内的点?

Elastic Beanstalk:从 SPA 中删除 hashbang url