[英]How do I convert list of elements to 1 or 0 in RDD Python?
我想讓列表 [1, 2, 3, 4, 5] 中的 my_dict 中的所有值都為 1,而所有不在列表中的值都為 0。我該怎么做?
我有一本字典和一個列表:
number_list = sc.parallelize([1, 2, 3, 4, 5])
my_dict = sc.parallelize([(101, [1, 2, 5]), (102, [2, 4] ), (103, [2, 3, 5] ), (104,[1, 5])])
**我希望 output 如下所示:**
([(101, [1, 1, 0, 0, 1]), (102, [0, 1, 0, 1, 0]), (103, [0, 1, 1, 0, 1]), (104, [1, 0, 0, 0, 1])])
我想讓列表 [1, 2, 3, 4, 5] 中的 my_dict 中的所有值都為 1,而所有不在列表中的值都為 0。我該怎么做?
...
...
我試過這段代碼,但它是錯誤的,無法正常工作
transformed_dict = my_dict.map(lambda x: (x[0], 1 if x[1] in my_test else 0))
origin = [0, 0, 0, 0, 0]
my_list = [(101, [1, 2, 5]), (102, [2, 4] ), (103, [2, 3, 5] ), (104,[1, 5])]
res = []
for (ele, l) in my_list:
for i in l:
origin[i-1] = 1
res.append((ele, origin))
origin = [0, 0 , 0, 0, 0]
print(res)
res_rdd = spark.sparkContext.parallelize(res)
res_rdd
這應該做的工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.