Pyspark - 如何删除数据框中的前导和尾随空格?
Pyspark - How can I remove the leading and trailing whitespace in my dataframe?
我有一个包含 10 列的 spark 数据框,我正在将其写入 hdfs 中的 table。我在列(所有字段和所有行)中遇到前导和尾随空格问题。
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 中的 tables 中仍然出现空白:
我能找到的大部分示例都是 Scala。有没有一种方法可以使用 pyspark 成功完成此操作?我的 Spark 版本是 2.2.0.
当我在第一个引号后用 5 个空格查询时,我得到一个结果:
我想保留它 pyspark 所以我回到 python 代码并添加了一行删除所有尾随和前导的白色-space.
df_out = df_out.applymap(lambda x: x.strip() if isinstance(x, str) else x)
这解决了问题,我能够毫无问题地导入到 hdfs table。
我有一个包含 10 列的 spark 数据框,我正在将其写入 hdfs 中的 table。我在列(所有字段和所有行)中遇到前导和尾随空格问题。
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 中的 tables 中仍然出现空白:
我能找到的大部分示例都是 Scala。有没有一种方法可以使用 pyspark 成功完成此操作?我的 Spark 版本是 2.2.0.
当我在第一个引号后用 5 个空格查询时,我得到一个结果:
我想保留它 pyspark 所以我回到 python 代码并添加了一行删除所有尾随和前导的白色-space.
df_out = df_out.applymap(lambda x: x.strip() if isinstance(x, str) else x)
这解决了问题,我能够毫无问题地导入到 hdfs table。