我有以下简单代码导致有关缓存的错误:
trips_in = sc.textFile("trip_data.csv")
trips = trips_in.map(lambda l: l.split(",")).map(lambda x: parseTrip(x)).cache()
trips.count()
该函数parseTrip()
获取字符串列表并创建并返回一个类 Trip:
class Trip:
def __init__(self, id, duration):
self.id = id
self.duration = duration
我在操作后立即收到错误消息count()
。但是,如果我删除cache()
第二行末尾的 一切正常。根据错误,问题是无法腌制类 Trip:
PicklingError: Can't pickle __main__.Trip: attribute lookup __main__.Trip failed
那么我怎样才能让它变得可腌制(如果它是一个实际的词)?请注意,我使用的是 Databricks 笔记本,因此我无法为类定义制作单独的 .py 以使其可腌制。