【发布时间】:2018-07-31 22:42:41
【问题描述】:
我对 pyspark 很陌生,所以这是一个非常基本的问题: 所以我有一个看起来像这样的数据框:
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|W 27-May-18 10:1...|false|
| ...|false| ##this one should not be flagged
|W 27-May-18 10:1...|false|
如果开头没有 W 或 I 或 E 或 U 我想将以下所有行连接在一起,那么它应该看起来像这样:
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|I 27-May-18 10:1...|false|
|W 27-May-18 10:1......|false| ##the row after this one was joined to the one before
|W 27-May-18 10:1...|false|
为此,我认为我标记了行,以某种方式将组分配给行,然后使用 group by 语句。
但是我已经卡在标记行上,因为正则表达式不起作用:
所以它的正则表达式是:'^[EUWI]\s'
当我在 pyspark 中使用它时,它会返回所有错误...
这里是代码:
df_with_x5 = a_7_df.withColumn("x5", a_7_df.line.startswith("[EUWI]\s"))
##I am using start with thats why i can drop the `^`
为什么它不接受我的正则表达式?
【问题讨论】:
-
它不起作用,因为
.startswith不接受正则表达式。 -
谢谢... 是一个不错的选择,至少它可以工作
-
是的,
rlike接受正则表达式。它还允许部分匹配。 -
你知道现在如何将每个真行和以下假行匹配一个唯一的数字吗?
-
@MimiMüller 请阅读how to create good reproducible apache spark dataframe examples 并尝试更详细地解释您想要的输出是什么以及实现它的逻辑是什么。