在pyspark中将多个RDD行转换为一行

时间:2018-06-14 20:14:30

标签: python apache-spark pyspark rdd

我有一个非结构化的CSV文件,行不等。我想以这样的方式构造文件,即通过行中的某些单词组合行。 例如:if" A"这符合线,这标志着线的重要性,如果" B"在线,这标志着线的终点。 我已经在pyspark中寻找两天的方式来做到这一点,但我没有解决方案。 任何帮助都会很棒。

csv文件的内容如下所示:

STARTING |1|TH|TGG|132|8|T|Fall|
EVENT 1|56|HT|JUP||||||||
EVENT 2|BHT|987|231|||||||||||||||||
STOP|HFR|0.5|90|
STARTING |8|TH|TGG|12|8|T|Fall|
EVENT 1|6|HT|UP||||||||
EVENT 2|BT|987|31|||||||||||||||||
STOP|FR|0.5|90|

我想要这个: enter image description here 我在PYSPARK中创建了以下功能,但它不能完成这项工作:)

rdd_1 = ("filename/Path")
Def tranform(line)
lines = line .replace ("\n").replace("\r")
START = False
END = False
New_line =[]
AGG = []

for line in lines:
    if "STARTING" in line:
        START = True
    if "STOP" in line:
        END = True
    if START and END:
        New_line.append(line)
    AGG = ' ' join (New_line)
    Return (AGG)
rdd_2 = rdd_1.map(transform)

0 个答案:

没有答案