【发布时间】:2019-04-22 18:15:37
【问题描述】:
我有一个我广播的 python 字典,其中包含用户的日期过滤器。
nested_filter = {"user1":"2018-02-15"}
b_filter = sc.broadcast(nested_filter)
我想使用这个广播变量来过滤一个较大的RDD,其行数少于过滤日期。
rdd_set = sc.parallelize([("user1","2018-02-05"), ("user1","2018-02-20")])
rdd_set.filter(lambda fields: fields <= b_filter.value.items()).collect()
但它返回一个空的 RDD。
有人可以指出我做错了什么吗?另外,我需要将字符串日期转换为日期对象吗?
正确的结果应该是:
[("user1","2018-02-05")]
【问题讨论】:
-
为什么广播变量是字典?为什么不只是一次约会?您想为每个用户使用不同的
date吗?
标签: python apache-spark pyspark rdd