PySpark如何按分隔符拆分列生成多行并标记是否拆分
PySpark按分隔符拆分列并标记拆分状态实现方案
需求完全可以实现,核心逻辑是拆分前先给原行打标记,再执行拆分操作即可,具体操作如下:
首先确认你已经导入PySpark函数工具:
import pyspark.sql.functions as F
之后分两步处理即可:
- 先根据原col3是否包含拆分分隔符
and,提前生成IsSplit标记列 - 再执行你原有的explode拆分逻辑,拆分后生成的所有行会自动继承原行的标记值,完全匹配你的需求
完整代码示例:
# 第一步:给原行打拆分标记 df = df.withColumn( "IsSplit", F.when(F.col("col3").contains(" and "), F.lit('"Y"')) .otherwise(F.lit('"N"')) ) # 第二步:执行拆分转多行操作 df = df.withColumn("col3", F.explode(F.split("col3", ' and ')))
执行上述代码后输出的结果和你期望的效果完全一致。
内容的提问来源于stack exchange,提问作者Shreeni
相关产品推荐
相关产品推荐

