【问题标题】:Pyspark: Split and select part of the string column valuesPyspark:拆分并选择部分字符串列值
【发布时间】:2021-09-02 01:13:04
【问题描述】:

如何从 spark DF 的列中选择 Dev\”dev\ 之后的字符或文件路径?

pyspark 列的示例行:

\\D\Dev\johnny\Desktop\TEST
\\D\Dev\matt\Desktop\TEST\NEW
\\D\Dev\matt\Desktop\TEST\OLD\TEST
\\E\dev\peter\Desktop\RUN\SUBFOLDER\New

预期输出

johnny\Desktop\TEST
matt\Desktop\TEST\NEW
matt\Desktop\TEST\OLD\TEST
peter\Desktop\RUN\SUBFOLDER\New

我尝试使用下面的代码。

df = df.withColumn(
        "sub_path",
        F.element_at(F.split(F.col("path"), "Dev\\\\"), -1)
    )

它只给出我想要的正确结果。 感谢有人可以提供帮助。

【问题讨论】:

    标签: python dataframe pyspark apache-spark-sql


    【解决方案1】:

    下面的修改[Dd]匹配大小写d

    df = df.withColumn(
            "sub_path",
            F.element_at(F.split(F.col("path"), "[Dd]ev\\\\"), -1)
        )
    

    让我知道这是否适合你。

    【讨论】:

    • 感谢您的回答。有没有办法通过反斜杠的数量来选择?在这种情况下,在第四个反斜杠之后,我们选择字符串的其余部分?当我们有大量不同字符的行时。
    • 请将此作为另一个问题添加,其中包含示例数据和预期结果以测试可能的解决方案,以便我们也可以查看此问题。
    • 我添加了一个新问题。 stackoverflow.com/questions/69024095/…谢谢支持
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    相关资源
    最近更新 更多