我有一个包含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个空格时,我得到一个结果:
答案 0 :(得分:0)
我想将其保留为pyspark,所以我返回python代码并添加了一行,以删除所有尾随和前导空格。
df_out = df_out.applymap(lambda x: x.strip() if isinstance(x, str) else x)
这解决了这个问题,我能够毫无问题地导入hdfs表。