我见过各种各样的人都认为这Dataframe.explode是一种有用的方法,但它会导致比原始数据帧更多的行,这根本不是我想要的.我只是想做Dataframe相当于非常简单:
rdd.map(lambda row: row + [row.my_str_col.split('-')])
Run Code Online (Sandbox Code Playgroud)
它看起来像:
col1 | my_str_col
-----+-----------
18 | 856-yygrm
201 | 777-psgdg
Run Code Online (Sandbox Code Playgroud)
并将其转换为:
col1 | my_str_col | _col3 | _col4
-----+------------+-------+------
18 | 856-yygrm | 856 | yygrm
201 | 777-psgdg | 777 | psgdg
Run Code Online (Sandbox Code Playgroud)
我知道pyspark.sql.functions.split(),但它导致嵌套数组列而不是我想要的两个顶级列.
理想情况下,我希望这些新列也可以命名.
apache-spark apache-spark-sql pyspark spark-dataframe pyspark-sql