Pyspark.sql: как удалить пустое пространство и сохранить только определенную часть данных с помощью python

#python #apache-spark #pyspark #apache-spark-sql

#python #apache-spark #pyspark #apache-spark-sql

Вопрос:

Это моя таблица: Lat_Long

введите описание изображения здесь

Я хочу сохранить только ту информацию, которая отмечена.

введите описание изображения здесь

Таким образом, таблица должна выглядеть следующим образом

введите описание изображения здесь

Как добиться этого с помощью pyspark sql с использованием python, а тип данных столбца — в строковом формате.

Ответ №1:

Вы можете использовать функцию regexp_extract и регулярное выражение (S )$ , чтобы получить последнее число. Например:

  --------- --------- 
|     col1|     col2|
 --------- --------- 
|100 -20.0|300 -40.0|
|100 -20.0|300 -40.0|
 --------- --------- 

df.select(*[F.regexp_extract(col, r'(S )

Вывод:

  ----- ----- 
| col1| col2|
 ----- ----- 
|-20.0|-40.0|
|-20.0|-40.0|
 ----- ----- 
 

Ответ №2:

Вы можете использовать split для разделения на пробелы. Используйте регулярное s выражение для разделения на любое количество пробелов.

 import pyspark.sql.functions as F

result = df.select(*[F.split(i, r's ')[1].alias(i) for i in df.columns])
 

, 1).alias(col) for col in df.columns]).show()
Вывод:


Ответ №2:

Вы можете использовать split для разделения на пробелы. Используйте регулярное s выражение для разделения на любое количество пробелов.