“list”对象没有属性“map”

nkkqxpd9  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(480)

我知道是因为 map 是函数而不是列表方法。但是有没有一种方法可以使用map函数将数据传递给名为insidemap的函数呢。
这是我的密码:

def func1(lines):
    global newlst
    for line in lines:
        qtype = re.search("qtype=(\S+)",str(line))  
        ......
file = sc.textFile("C:\\TestLogs\\sample.log").cache()
result = file.map(lambda x: x.split("\n")).collect()
print(type(result)) #it is a list
lines = result.map(func1).collect() #I want to pass the contents of result to func1 through map function.

错误:

lines = result.map(func1).collect()
AttributeError: 'list' object has no attribute 'map'

有没有其他方法可以传递我的数据 resultsfunc1 但是通过使用 map 或者spark中产生rdd的任何概念?

8i9zcol2

8i9zcol21#

问题在于调用collect将rdd的结果存储在此处:

result = file.map(lambda x: x.split("\n")).collect()

此命令将返回给您一个列表,而不是rdd。如果你移除 collect() 从这一行开始:

result = file.map(lambda x: x.split("\n"))

这会有用的。

相关问题