Я использую pyspark версии 2.4, и я пытаюсь написать udf
, который должен взять значения столбца id1
и столбца id2
вместе и вернуть его обратную строку.
Например, мои данные выглядят так:
+---+---+
|id1|id2|
+---+---+
| a|one|
| b|two|
+---+---+
соответствующий код:
df = spark.createDataFrame([['a', 'one'], ['b', 'two']], ['id1', 'id2'])
Возвращаемое значение должно быть
+---+---+----+
|id1|id2| val|
+---+---+----+
| a|one|enoa|
| b|two|owtb|
+---+---+----+
Мой код:
@udf(string)
def reverse_value(value):
return value[::-1]
df.withColumn('val', reverse_value(lit('id1' + 'id2')))
Мои ошибки:
TypeError: Invalid argument, not a string or column: <function
reverse_value at 0x0000010E6D860B70> of type <class 'function'>. For
column literals, use 'lit', 'array', 'struct' or 'create_map'
function.