Я пытаюсь написать функцию flatMap на языке python в понимании списка!
simpleRDD = sc.parallelize([2,3,4])
print(simpleRDD.map(lambda x:range(1, x)).collect())
и вывод такой:
[[1], [1, 2], [1, 2, 3]]
Я написал функцию Map следующим образом:это работает, это правильный путь?
def myRange(x):
return [x for x in range(1,x)]
def myMap(func, myList):
return [func(i) for i in myList]
print(myMap(myRange, [2, 3, 4]))
Но если я хочу написать flatMap и добиться того, что приведенный ниже код генерирует в spark, он не будет работать.
print(simpleRDD.flatMap(lambda x:range(1, x)).collect())
вывод:
[1, 1, 2, 1, 2, 3]
и это моя попытка, которая не работает.
def myRange(x):
return [x for x in range(1,x)]
def myFlatMap(func, myList):
return [*(func(i) for i in myList)]
print(myFlatMap(myRange , [2, 3, 4]))