关于Apache Spark:从字符串的RDD到双打列表的RDD的Pyspark映射

 2021-04-09 

Pyspark map from RDD of strings to RDD of list of doubles

我相信在spark / python编程上下文中,这是一个相当基本的操作。我有一个看起来像这样的文本文件:

1
2
3
4
mydata.txt
12  34  2.3  15
23  11  1.5  9
33  18  4.5  99

,然后使用以下代码读取文本文件:

1
data = sc.textFile("mydata.txt")

,这将以字符串的RDD形式读取文件。但是,我想分离值并将它们全部转换为浮点数。所以我将上面的行更改为此:

1
data = sc.textFile("matrix1.txt").map(lambda line: line.split(' '))

成功将数据按空格分割。但是我在努力想出map函数,然后将其转换为浮点数。类似于以下内容:

1
.map(lambda line: float(line))

但是这没用。任何帮助表示赞赏!
谢谢!

编辑-请假设我不知道数据的列数。因此,沿着.map(lambda line:float(line [0]),float(line [1]),float(line [2]),float(line [3])的线并不是特别有用。铅>


没关系,明白了。

1
.map(lambda line: [float(x) for x in line])