【问题标题】:Using each value in a list as key in key value pair使用列表中的每个值作为键值对中的键
【发布时间】:2021-02-28 14:12:22
【问题描述】:

我正在尝试编写一个自定义函数,该函数采用 RDD,每条记录小写,将其拆分为字符,然后将每条记录用作键值对中的键,其中值始终为 1。我已经编写了另外两个自定义函数,分别进行小写和字符拆分,to_lower() 和 to_characters()。

我尝试了几种不同的方法,但到目前为止,我只能将整个列表作为键,而不是每条记录都在其自己的对中。

#Attempt 1
def rdd_to_character_value_pairs(rdd):
  lowerRDD = rdd.map(lambda x: to_lower(x))
  characterRDD = lowerRDD.map(lambda x: to_characters(x))
  pairedRDD = characterRDD.map(lambda x: ([char for char in characterRDD], 1))
return pairedRDD

#Attempt 2
def rdd_to_character_value_pairs(rdd):
  lowerRDD = rdd.map(lambda x: to_lower(x))
  characterRDD = lowerRDD.map(lambda x: to_characters(x))
  for i in characterRDD.collect():
     return ([char for char in characterRDD], 1)
     #have also tried return (i,1)

我了解您无法迭代 RDD,但我也无法找到任何解决方法。

【问题讨论】:

标签: python


【解决方案1】:
some_list = ["value1", "value2"]
some_dict = {value_as_key: 'some_value' for value_as_key in some_list}

输出:

{'value1': 'some_value', 'value2': 'some_value'}

【讨论】:

  • 这个解决方案仍然给我一个 'PipelinedRDD' object is not iterable 错误
猜你喜欢
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 2013-12-17
  • 1970-01-01
相关资源
最近更新 更多