apache-spark - 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 个空格查询时,我得到一个结果:
解决方案
我想保留它 pyspark 所以我回到 python 代码并添加了一行删除所有尾随和前导空格。
df_out = df_out.applymap(lambda x: x.strip() if isinstance(x, str) else x)
这解决了这个问题,我能够毫无问题地导入到 hdfs 表中。
推荐阅读
- javascript - React 组件在重新渲染时创建一个新的状态实例,即使状态没有改变
- javascript - 如何切换(开始/停止)ngrx 操作?
- php - 如何在 PHP 中转义单引号内的双引号?
- android - 我无法通过名称搜索在 google play store 中找到我的 android 应用
- php - Laravel 可搜索的附加条件
- python - 为什么它不能正常运行?
- python - 将列表名称作为列表传递以在 Python 中创建一个 numpy 数组
- javascript - 在 JS 中进行扩散抖动时出错
- typescript - TypeScript 装饰器现象(装饰器参数在特殊情况下变得未定义)
- python - AttributeError:“元组”对象没有属性“predicted_mean”