首页 > 解决方案 > Pyspark - 如何删除数据框中的前导和尾随空格?

问题描述

我有一个包含 10 列的 spark 数据框,我正在写入 hdfs 中的表。我在列(所有字段和所有行)中的前导和尾随空格存在问题。

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Networks').getOrCreate()

dataset = spark.read.csv('Networks_arin_db_2-20-2019_parsed.csv', header=True, inferSchema=True)

#dataset.show(5)

在此处输入图像描述

我使用以下我发现的搜索选项:

dataset.write \
  .option("parserLib","univocity") \
  .option("ignoreLeadingWhiteSpace","false") \
  .option("ignoreTrailingWhiteSpace","false") \
  .mode("append") \
  .option("path", "/user/hive/warehouse/analytics.db/arin_network") \
  .saveAsTable("analytics.arin_network")

但我仍然在 hdfs 的表中得到空格:

在此处输入图像描述

我能找到的大多数例子都是 Scala。有没有办法可以使用 pyspark 成功完成此任务?我的 Spark 版本是 2.2.0。

当我在第一个引号后用 5 个空格查询时,我得到一个结果:

在此处输入图像描述

标签: apache-sparkpysparkpyspark-sql

解决方案


我想保留它 pyspark 所以我回到 python 代码并添加了一行删除所有尾随和前导空格。

df_out = df_out.applymap(lambda x: x.strip() if isinstance(x, str) else x)

这解决了这个问题,我能够毫无问题地导入到 hdfs 表中。


推荐阅读