Pyspark-如何删除数据框中的前导和尾随空格?

时间:2019-02-21 18:10:49

标签: apache-spark pyspark pyspark-sql

我有一个包含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)

enter image description here

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

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的表中仍然出现空格:

enter image description here

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

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

enter image description here

1 个答案:

答案 0 :(得分:0)

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

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

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