【问题标题】:Splitting and RDD row to different column in Pyspark将 RDD 行拆分到 Pyspark 中的不同列
【发布时间】:2018-01-29 01:59:50
【问题描述】:

这是我上一个问题的延续。

我正在尝试使用 pyspark 查找以下 RDD 的“e”的索引:

['a,b,c,d,e,f']

我正在使用的方法:

rdd.zipWithIndex().lookup('e')

但我得到 = []

因为 Rdd 的形式是: [ ['a,b,c,d,e,f']

我试过了

rdd.flatMap(lambda x: x)

所以我使用查找来获取索引,但我仍然得到 []

请帮助我。我如何获得 Rdd 为:

['a','b','c','d','e','f']

这样我就可以做这个方法了

    rdd.zipWithIndex().lookup('e')

【问题讨论】:

标签: python apache-spark pyspark row rdd


【解决方案1】:

问题是您将整个字符串用作array

['a,b,c,d,e,f']

所以,这里a,b,c,d,e,f 都被视为一个字符串。 您需要将它们分成您拥有的 RDD 的单独行。您可以简单地使用 flatMapstring 分隔为单独的 RDD rows,然后使用 zipWithIndex()lookUp()

print(rdd.flatMap(lambda x: x.split(",")).zipWithIndex().lookup("e"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多