我有一个带有forenames列的字符串。我必须创建一个新列first_name,它在第一个空格之前有第一个字符串,或者如果连字符出现在forenames中第一个空格之前的第一个字符串中。
|forenames | first_name |
+--------+---------------------+
|IVO-KAI ROGERS | IVO-KAI |
|DYLAN STUART JOHN| DYLAN |
|JOSH JACK | JOSH |
|MONALISA ELIEN | MONALISA |
|RACHEL- GREEN JOE|RACHEL-GREEN|
字符串
我必须创建另一个新的列middle_name,它将在第一个空格后面跟着first_name的forenames中包含第二个字符串。预期输出将是:
|forenames | first_name | middle_name |
+--------+---------------------+-------------+
|IVO-KAI ROGERS | IVO-KAI | ROGERS |
|DYLAN STUART JOHN| DYLAN | STUART JOHN |
|JOSH JACK | JOSH | JACK |
|MONALISA ELIEN | MONALISA | ELIEN |
|RACHEL- GREEN JOE|RACHEL-GREEN| JOE |
型
2条答案
按热度按时间rryofs0p1#
要根据第一次出现的空格将forenames列拆分为first_name和last_name,可以在Spark SQL中使用SPLIT和SUBSTRING_INDEX函数。下面是如何实现的。
字符串
yyhrrdl82#
你可以使用下面的pyspark代码来拆分第一列,并创建两个新闻列:
字符串
最好的问候,侯赛因