如何将全名拆分为名字和中间名

问题描述 投票:0回答:1

输入

Name
Anubhav Sharma
Rakesh Kumar Sharma
Muthiah Srinivas attapatu Murlidharan

输出

Fname.        Mname.        lname .                    Sharma.  Rakesh.       Kumar.        Sharma
Muthiah.  Srinivas attapatu attapatu

`df = df.withColumn(
    "arr", F.split(F.col("Name"), " ")
)

df = (
    df
    .withColumn('FirstName', F.arr.getItem(0))
    .withColumn('MiddleName', F.arr.getItem(1))
    .withColumn('LastName', F.arr.getItem(2))
)`

问题在于中间名,因为我的代码不正确

pyspark
1个回答
0
投票

您应该能够使用直接索引来获取“名字”的第一个元素、“姓氏”的最后一个元素,然后可以假设剩余的值是中间名。所以它会是这样的 -

df = (
    df
    .withColumn('FirstName', F.col("arr")[0])
    .withColumn('MiddleName', F.col("arr")[1:-1].join(" "))
    .withColumn('LastName', F.col("arr")[-1])
)`
© www.soinside.com 2019 - 2024. All rights reserved.