Pyspark - Как я могу удалить начальные и конечные пробелы в моем фрейме данных? - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть искровой фрейм данных с 10 столбцами, которые я записываю в таблицу в формате hdf.У меня проблемы с начальным и конечным пробелами в столбцах (все поля и все строки).

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 голосов
/ 25 февраля 2019

Я хотел сохранить его pyspark, поэтому я вернулся к коду Python и добавил строку, которая удаляет все конечные и ведущие пробелы.

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

Это решило проблему, и я смогимпортировать в таблицу hdfs без проблем.

...