Использование Pyspark 2.2
У меня есть спарк DataFrame с несколькими столбцами.Мне нужно ввести 2 столбца в UDF и вернуть 3-й столбец
Ввод:
+-----+------+
|col_A| col_B|
+-----+------+
| abc|abcdef|
| abc| a|
+-----+------+
И col_A
, и col_B
StringType()
Желаемыйвывод:
+-----+------+-------+
|col_A| col_B|new_col|
+-----+------+-------+
| abc|abcdef| abc|
| abc| a| a|
+-----+------+-------+
Я хочу, чтобы new_col
была подстрокой col_A
с длиной col_B
.
Я пытался
udf_substring = F.udf(lambda x: F.substring(x[0],0,F.length(x[1])), StringType())
df.withColumn('new_col', udf_substring([F.col('col_A'),F.col('col_B')])).show()
Ноэто дает TypeError: Column is not iterable
.
Есть идеи, как сделать такие манипуляции?