在HDFS中将PySpark DataFrame写入无尾随空格的固定长度竖线分隔文本文件
PySpark 固定分隔位置文本输出的优化需求
基础数据
当前使用的PySpark DataFrame存储的样例数据如下:
id name address 101010 xyz abc jkdjfkd kdfjd 101001 ygbgnt bnbnb dfkdjfd kdjfkd kdfjkd
输出规则
需要将上述DataFrame以固定宽度格式写入HDFS文本文件,核心规则为:
- 列之间使用
|作为分隔符,且分隔符的出现位置严格固定,不得偏移 - 第一个
|固定位于第7个字符位置 - 第二个
|固定位于第23个字符位置 - 第三个
|固定位于第52个字符位置
目标输出的样例格式参考:
101010|xyz abc |jkdjfkd kdfjd | 101001|ygbgnt bnbnb |dfkdjfd kdjfkd kdfjkd |
当前实现的问题
目前通过rpad函数补齐列长度来匹配固定分隔位置,但该实现会在name、address列的有效内容后生成多余的尾随空格,需要在严格满足分隔符位置精度要求的前提下,消除这些无意义的尾随空格。
内容的提问来源于stack exchange,提问作者Bishan Singh
相关产品推荐
相关产品推荐

