【问题标题】:How can I create a key value pair for such format?如何为这种格式创建键值对?
【发布时间】:2014-12-30 17:28:10
【问题描述】:

所以我正在使用 Spark RDD。我有一个制表符分隔的文件,格式如下

Actor1   Movie1
         Movie2
         Movie3

Actor2   Movie4
         Movie5
         Movie6

我想创建键值对,其中键是演员,值是演员所在的电影。如何使用 Scala 或 Python 做到这一点?我能够读取文本文件并从选项卡中拆分行,如下所示,但我不知道如何形成键值对。

 lines = sc.textFile("file")
 tuples = lines.map(lambda x: x.split("\t"));
 # how do I create key value pairs???

【问题讨论】:

    标签: python scala bigdata apache-spark


    【解决方案1】:

    你不能,或者至少不应该。火花的全部意义在于可以并行处理不同的行;如果前两行在一个集群节点上运行,而后两行在另一个集群节点上运行,则第二个节点无法知道 Movie3 与 Actor1 一起使用。

    您可以将mapPartitions 与将行作为Iterator 并使用var 来跟踪“当前”Actor 的函数一起使用。如果您注意输入文本文件的拆分方式,您可能不会丢失任何数据。但我敦促您找到更好的输入格式。

    【讨论】:

    • 输入文件按原样给出,我无法更改。
    【解决方案2】:

    我也在尝试解决类似的问题..这个问题的结论是什么?行得通吗?如何使用 mapPartion 来解决这类问题?

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 1970-01-01
      • 2020-07-10
      • 2021-07-21
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多