如何在Pyspark中将字符串列表转换为int

时间:2017-09-24 16:59:43

标签: apache-spark pyspark

我在阅读文件时

nums = sc.textfile("hdfs location/input.txt")

我得到一个字符串列表 如果我在Spark中使用Scala,我可以使用

将数据转换为int
nums_convert = nums.map(_.toInt)

我不知道如何使用pyspark做同样的事情。我在网上完成的所有示例都使用脚本本身生成的数字列表而不是加载文件。或者文件的格式在数据框中是有意义的(以制表符分隔的数据列)。

我尝试使用Python的地图,但它抱怨说nums是不可迭代的,这是有道理的。最后,我只是尝试处理文件中的数字列表,但不确定如何将字符串转换为我实际可以使用的字符串。

1 个答案:

答案 0 :(得分:3)

如果您明确写出lambda

,那么这里差别不大

在Scala中

nums_convert = nums.map(x => x.toInt)

在Python中

nums_convert = nums.map(lambda x: int(x))

或者,您可以隐式地执行此操作

nums_convert = nums.map(int)
  

我尝试使用Python的地图

RDD不是可迭代的。它有自己的地图功能。另外,将RDD视为实际的"列表对象"只会导致更多错误