输入
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))
)`
问题在于中间名,因为我的代码不正确
您应该能够使用直接索引来获取“名字”的第一个元素、“姓氏”的最后一个元素,然后可以假设剩余的值是中间名。所以它会是这样的 -
df = (
df
.withColumn('FirstName', F.col("arr")[0])
.withColumn('MiddleName', F.col("arr")[1:-1].join(" "))
.withColumn('LastName', F.col("arr")[-1])
)`