我正在尋找一種方法從數據幀列中的字符串中獲取最後一個字符,並將其放入另一列。帶有其他列的最後一個字符的Spark Dataframe列
我有一個Spark數據框,看起來像這樣:
animal
======
cat
mouse
snake
我想是這樣的:
lastchar
========
t
e
e
現在我可以用UDF看起來做到這一點,如:
def get_last_letter(animal):
return animal[-1]
get_last_letter_udf = udf(get_last_letter, StringType())
df.select(get_last_letter_udf("animal").alias("lastchar")).show()
我主要是好奇,如果有一個更好的辦法來做到這一點沒有一個UDF。謝謝!
完美。我沒有想過爲子串嘗試一個負數。謝謝! – mikestaszel
有沒有辦法讓一切,但第一個和最後一個字符? 'df.withColumn( 「B」,子串(COL( 「COLUMNNAME」),1,-1))'不起作用。 – citynorman
@citynorman你可以嘗試使用regex_extract通過正則表達式來得到它。子需要的元素的恆定數量(-1特技可用於開始位置,而不是長度) –