簡體   English   中英

如何在 RDD Python 中將元素列表轉換為 1 或 0?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM