Когда я печатаю первый элемент моего rdd следующим образом:
print("input = {}".format(input.take(1)[0]))
Я получаю результат как: (u'motor', [0.001,..., 0.9])
Тип [0.001,..., 0.9]
- это список.
Количество элементов на входе rdd равно 53304100
Моя проблема возникает, когда я хочу транслировать входной СДР следующим образом:
brod = sc.broadcast(input.collect())
СгенерированныйИсключением является следующее (я показываю только первый фрагмент исключения):
WARN TaskSetManager: Lost task 56.0 in stage 1.0 (TID 176, 172.16.140.144, executor 0): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/cvmfs/soft.computecanada.ca/easybuild/software/2017/Core/spark/2.3.0/python/lib/pyspark.zip/pyspark/worker.py", line 229, in main
process()
File "/cvmfs/soft.computecanada.ca/easybuild/software/2017/Core/spark/2.3.0/python/lib/pyspark.zip/pyspark/worker.py", line 224, in process
serializer.dump_stream(func(split_index, iterator), outfile)
File "/cvmfs/soft.computecanada.ca/easybuild/software/2017/Core/spark/2.3.0/python/lib/pyspark.zip/pyspark/serializers.py", line 372, in dump_stream
vs = list(itertools.islice(iterator, batch))
TypeError: <lambda>() missing 1 required positional argument: 'document'