データフレーム列の文字列から最後の文字を取得して別の列に配置する方法を探しています。
私は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なしでこれを行うより良い方法があるかどうか、私は主に気になります。ありがとう!
部分文字列関数を使用するだけです
from pyspark.sql.functions import substring
df.withColumn("b", substring(col("columnName"), -1, 1))
1つの方法は、列のsubstr()関数を使用することです。
df = df.withColumn("lastchar", df.animal.substr(-1,1))
ドキュメントを参照してください: https://spark.Apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.Column.substr