Описание проблемы:
В приведенном ниже примере кода (1) работает нормально, но (2) выдает ошибку. Я проверил параметры функций в их определении, как initcap (col), так и upper (col), что, я думаю, означает, что они будут принимать объект Column, так почему же разница в исполнении? Добавление col () upper () выполняется без ошибок.
Код для генерации данных:
from pyspark.sql import Row
from pyspark.sql.types import StructType , StructField , StringType
from pyspark.sql.functions import col , upper , initcap
myRow = Row('this is spark')
myManualSchema = StructType([
StructField('Description',StringType())
])
myDF = spark.createDataFrame([myRow],myManualSchema)
myDF.show()
Код для репликации проблем
myDF.select(initcap('Description')).show(2) # (1) Works Fine
myDF.select(upper('Description')).show(2) # (2) Error
myDF.select(upper(col('Description'))).show(2) # (3) Works Fine
(1) Изображение для точки 1:
(2) Изображение для точки 2:
(3) Изображение для точки 3