Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python lambda中包含正则表达式的pyspark拆分字符串_Python_Apache Spark_Lambda_Pyspark_Pyspark Sql - Fatal编程技术网

Python lambda中包含正则表达式的pyspark拆分字符串

Python lambda中包含正则表达式的pyspark拆分字符串,python,apache-spark,lambda,pyspark,pyspark-sql,Python,Apache Spark,Lambda,Pyspark,Pyspark Sql,我正在尝试基于lambda函数中的正则表达式拆分字符串,但字符串没有被拆分。我确信正则表达式工作正常。检查regex测试链接 我不知道我会错在哪里 文件中的示例行: |RECEIVE|Low| eventId=139569 msg=W4N Alert :: Critical : Interface Utilization for GigabitEthernet0/1 90.0 % in=2442 out=0 categorySignificance=/Normal categoryBehavi

我正在尝试基于lambda函数中的正则表达式拆分字符串,但字符串没有被拆分。我确信正则表达式工作正常。检查regex测试链接

我不知道我会错在哪里

文件中的示例行:

|RECEIVE|Low| eventId=139569 msg=W4N Alert :: Critical : Interface Utilization for GigabitEthernet0/1 90.0 % in=2442 out=0 categorySignificance=/Normal categoryBehavior=/Communicate/Query categoryDeviceGroup=/Application
正则表达式应该匹配键前的空格

产出

|RECEIVE|Low|
eventId=139569
msg=W4N Alert :: Critical : Interface Utilization for GigabitEthernet0/1 90.0 %
in=2442
out=0
categorySignificance=/Normal
categoryBehavior=/Communicate/Query
categoryDeviceGroup=/Application

您能否共享Log18Dec.txt中的数据,以及您期望的输出?或者您能否至少告诉我们您期望的是什么(我的意思是“您能描述一下您的正则表达式应该匹配什么?”),以及您得到了什么?@Oli,rohikulky使用示例行和期望的输出进行了编辑
|RECEIVE|Low|
eventId=139569
msg=W4N Alert :: Critical : Interface Utilization for GigabitEthernet0/1 90.0 %
in=2442
out=0
categorySignificance=/Normal
categoryBehavior=/Communicate/Query
categoryDeviceGroup=/Application
from pyspark.sql.functions import col,split
import re

#r = re.compile(r"(?=\s\w+=)")
adsample = sc.textFile("hdfs://hostname/user/hdfs/sample/Log18Dec.txt")
splitted_sample = adsample.flatMap(lambda (x): ((v) for v in re.split('\s+(?=\w+=)',x)))

for m in splitted_sample.collect():
    print(m)