Ваш код выглядит так, будто вы привыкли к пандам.Усечение в pyspark немного отличается.Посмотрите ниже:
from pyspark.sql import functions as F
l = [
( 'Z9L57.W3' , ),
( 'H9L23.05' ,),
( 'PRL57.AF' ,)
]
columns = ['Products']
df=spark.createDataFrame(l, columns)
Функция withColumn позволяет изменять существующие столбцы или создавать новые.Функция принимает 2 параметра: column name
и columne expression
.Вы измените столбец, когда имя столбца уже существует.
df = df.withColumn('Products', F.split(df.Products, '\.').getItem(0))
df.show()
Вывод:
+--------+
|Products|
+--------+
| Z9L57|
| H9L23|
| PRL57|
+--------+
Вы создадите новый столбец при выборе несуществующего имени столбца.
df = df.withColumn('Products_trunc', F.split(df.Products, '\.').getItem(0))
df.show()
Вывод:
+--------+--------------+
|Products|Products_trunc|
+--------+--------------+
|Z9L57.W3| Z9L57|
|H9L23.05| H9L23|
|PRL57.AF| PRL57|
+--------+--------------+