我希望将 Spark DataFrame 的列根据第一次出现的字符(在本例中是下划线“_”)分成两个不同的列。
我准备了一个可以100%复制的示例:
模拟的 Spark DataFrame 如下:
df = spark.createDataFrame(
[
(1, 1.8, 'newyork_3434_north'),
(4, 2.6, 'la_432432432_south'),
(6, 3.3, 'boston_234324_east'),
(8, 4.1, 'detroit_6757_west'),
(2, 5.7, 'miami_133123_north'),
(3, 6.2, 'atlanta_093394_west'),
(1, 6.1, 'houston_87342_east')
],
('ranking', "coordenate", "city")
)
上述代码创建了一个表格,格式如下:
ranking coordenate city
1 1.8 newyork_3434_north
4 2.6 la_432432432_south
6 3.3 boston_234324_east
8 4.1 detroit_6757_west
2 5.7 miami_133123_north
3 6.2 atlanta_093394_west
1 6.1 houston_87342_east
我希望做的是根据从左到右第一个下划线的位置,将城市列分为两个不同的列。
最终期望的表格应该像这样:
ranking coordenate city code
1 1.8 newyork 3434_north
4 2.6 la 432432432_south
6 3.3 boston 234324_east
8 4.1 detroit 6757_west
2 5.7 miami 133123_north
3 6.2 atlanta 093394_west
1 6.1 houston 87342_east
我看到了关于这个主题的几个帖子,但它们并没有谈论字符第一次出现的情况(链接1,链接2等),而是根据字符串上的所有特定字符进行分割;或者通过字符在字符串中的特定位置来分割。
我还尝试了Python Pandas方法,但是如预期的那样,在PySpark中不能通过扩展或类比应用该方法 (链接3)。
非常感谢您的帮助。