根据pyspark或无尾熊中的正则表达式匹配来拆分字符串列

T3J45

问题:

我正在尝试处理具有混合数据性质的字符串列。此外,我在Pandas中尝试了一些操作,但是使用了大量内存,因此我希望切换到Koalas或Spark。

数据:

因此,假设这是我的数据框:

期间 班级
00:00:09 AAB
00:00:08 AAB
00:37:55 AAB
00:10:20 AAB
00:18:29 AAB
00:18:20 AAB
00:10:41 AAB
00:18:20 AAB
00:16:29 AAB
00:08:09 AAB
00:18:19 AAB
00:01:39 AAB
1个 RRE
1个 RRE
234 患病的
452 INL
11220 INL
100 AAB
122 AAB
00:18:29 BRQ
1个 BRQ
2 AKK
8 AKK

duration即使在使用不同正则表达式的Pandas中,也是我无法理解的。此列是时间(HH:MM:SS)和数据单位(以KB为单位)的混合,我必须将其分为2个单独的列,即call_durationdata

我的失败尝试

我尝试使用Koalas编写此代码,但是它不会从该列中拆分“时间”数据和“互联网数据”单元。

ks_preprocess_df["Duration"].str.split(r'^(?=\d\d\:\d\d\:\d\d\n)(?!.*[-])')

ks_preprocess_df["Duration"].str.split(r'^[?=\d+:\d+:\d\d\n][?]')

ks_preprocess_df["Duration"].str.split(r'\d\d\:\d\d\:\d\d\n', expand=True) 

预期输出:

数据 call_duration 班级
0 00:00:09 AAB
0 00:00:08 AAB
0 00:37:55 AAB
0 00:10:20 AAB
0 00:18:29 AAB
0 00:18:20 AAB
0 00:10:41 AAB
0 00:18:20 AAB
0 00:16:29 AAB
0 00:08:09 AAB
0 00:18:19 AAB
0 00:01:39 AAB
1个 空值 RRE
1个 空值 RRE
234 空值 患病的
452 空值 INL
11220 空值 INL
100 空值 AAB
122 空值 AAB
0 00:18:29 BRQ
1个 空值 BRQ
2 空值 AKK
8 空值 AKK
黑主教

在pyspark你可以使用rlikewhen表达:

from pyspark.sql import functions as F

df1 = df.withColumn(
    "data",
    F.when(F.col("duration").rlike("^[0-9]*$"), F.col("duration")).otherwise(0)
).withColumn(
    "call_duration",
    F.when(F.col("duration").rlike(r"^*\d{2}:\d{2}:\d{2}$"), F.col("duration"))
).select(
    "data", "call_duration", "Class"
)

df1.show(20)

#+-----+-------------+-----+
#| data|call_duration|Class|
#+-----+-------------+-----+
#|    0|     00:00:09|  AAB|
#|    0|     00:00:08|  AAB|
#|    0|     00:37:55|  AAB|
#|    0|     00:10:20|  AAB|
#|    0|     00:18:29|  AAB|
#|    0|     00:18:20|  AAB|
#|    0|     00:10:41|  AAB|
#|    0|     00:18:20|  AAB|
#|    0|     00:16:29|  AAB|
#|    0|     00:08:09|  AAB|
#|    0|     00:18:19|  AAB|
#|    0|     00:01:39|  AAB|
#|    1|         null|  RRE|
#|    1|         null|  RRE|
#|  234|         null|  ILL|
#|  452|         null|  INL|
#|11220|         null|  INL|
#|  100|         null|  AAB|
#|  122|         null|  AAB|
#|    0|     00:18:29|  BRQ|
#+-----+-------------+-----+

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配-拆分字符串

来自分类Dev

基于熊猫/正则表达式的方法来匹配字符串列表中的第一个字符串

来自分类Dev

需要一个正则表达式来拆分javascript中的字符串

来自分类Dev

如何从python中的正则表达式中的字符串列表中匹配任何字符串?

来自分类Dev

根据在Scala中重复正则表达式拆分字符串

来自分类Dev

根据在Scala中重复正则表达式拆分字符串

来自分类Dev

字符串列表中的正则表达式搜索字符串列表

来自分类Dev

如何获得在Java中的正则表达式模式字符串列表和匹配字符串

来自分类Dev

根据正则表达式匹配替换数据框中的字符串值

来自分类Dev

R正则表达式将字符串列拆分为多列

来自分类Dev

Python正则表达式拆分但将正则表达式匹配的结尾部分放回字符串中?

来自分类Dev

正则表达式根据子字符串列表清除短语

来自分类Dev

正则表达式匹配除字符串列表以外的所有内容

来自分类Dev

如何查看 rgb 的字符串列表是否匹配正则表达式模式?

来自分类Dev

如何使用正则表达式拆分字符串,开头字符与此 <= | 中的任何一个匹配 >= | = | !=

来自分类Dev

根据匹配项,用替换字符串替换字符串中的正则表达式模式

来自分类Dev

使用正则表达式混淆来拆分JS字符串

来自分类Dev

如何根据两种正则表达式格式拆分字符串?

来自分类Dev

Python正则表达式:拆分为空字符串的模式匹配

来自分类Dev

C#正则表达式匹配与相同字符串的拆分

来自分类Dev

按正则表达式匹配拆分字符串

来自分类Dev

C#正则表达式匹配与相同字符串的拆分

来自分类Dev

c#字符串过滤和正则表达式匹配拆分

来自分类Dev

正则表达式根据特定字符数匹配字符串

来自分类Dev

使用正则表达式拆分字符串中的单词,但不拆分符号

来自分类Dev

拆分字符串,不带正则表达式

来自分类Dev

正则表达式拆分字符串

来自分类Dev

Java正则表达式拆分字符串

来自分类Dev

正则表达式/字符串拆分

Related 相关文章

  1. 1

    正则表达式匹配-拆分字符串

  2. 2

    基于熊猫/正则表达式的方法来匹配字符串列表中的第一个字符串

  3. 3

    需要一个正则表达式来拆分javascript中的字符串

  4. 4

    如何从python中的正则表达式中的字符串列表中匹配任何字符串?

  5. 5

    根据在Scala中重复正则表达式拆分字符串

  6. 6

    根据在Scala中重复正则表达式拆分字符串

  7. 7

    字符串列表中的正则表达式搜索字符串列表

  8. 8

    如何获得在Java中的正则表达式模式字符串列表和匹配字符串

  9. 9

    根据正则表达式匹配替换数据框中的字符串值

  10. 10

    R正则表达式将字符串列拆分为多列

  11. 11

    Python正则表达式拆分但将正则表达式匹配的结尾部分放回字符串中?

  12. 12

    正则表达式根据子字符串列表清除短语

  13. 13

    正则表达式匹配除字符串列表以外的所有内容

  14. 14

    如何查看 rgb 的字符串列表是否匹配正则表达式模式?

  15. 15

    如何使用正则表达式拆分字符串,开头字符与此 <= | 中的任何一个匹配 >= | = | !=

  16. 16

    根据匹配项,用替换字符串替换字符串中的正则表达式模式

  17. 17

    使用正则表达式混淆来拆分JS字符串

  18. 18

    如何根据两种正则表达式格式拆分字符串?

  19. 19

    Python正则表达式:拆分为空字符串的模式匹配

  20. 20

    C#正则表达式匹配与相同字符串的拆分

  21. 21

    按正则表达式匹配拆分字符串

  22. 22

    C#正则表达式匹配与相同字符串的拆分

  23. 23

    c#字符串过滤和正则表达式匹配拆分

  24. 24

    正则表达式根据特定字符数匹配字符串

  25. 25

    使用正则表达式拆分字符串中的单词,但不拆分符号

  26. 26

    拆分字符串,不带正则表达式

  27. 27

    正则表达式拆分字符串

  28. 28

    Java正则表达式拆分字符串

  29. 29

    正则表达式/字符串拆分

热门标签

归档