在 Apache Spark 中使用 Python 获取第 n 个位置的字符串
Getting the string at nth position using Python in Apache Spark
lines = sc.textFile(fileName)
我正在尝试从每一行的位置 10:20 获取字符串以进行一些处理。由于 lines 是一个 RDD,它给出了一个语法错误,表示没有 __getitem__
.
请记住,lines
是 String
的 RDD
(集合),因此您需要在每个元素上调用一些东西 (substring
)。要获得对 RDD 的每个成员的函数调用的结果,map
是你的朋友。
Python(@zero323 提供):
lines.map(lambda line: line[10:21])
斯卡拉:
lines.map ( line => line.substring(10,20) )
这 return 是另一个 RDD,因此您需要在操作之前编写更多转换(即 return 结果或写入文件),这将触发它 运行.
您可以使用以下方法访问第 n(5th) 个元素
lines.zipWithIndex().filter(lambda keyV: keyV[1]==5).first()[0]
lines = sc.textFile(fileName)
我正在尝试从每一行的位置 10:20 获取字符串以进行一些处理。由于 lines 是一个 RDD,它给出了一个语法错误,表示没有 __getitem__
.
请记住,lines
是 String
的 RDD
(集合),因此您需要在每个元素上调用一些东西 (substring
)。要获得对 RDD 的每个成员的函数调用的结果,map
是你的朋友。
Python(@zero323 提供):
lines.map(lambda line: line[10:21])
斯卡拉:
lines.map ( line => line.substring(10,20) )
这 return 是另一个 RDD,因此您需要在操作之前编写更多转换(即 return 结果或写入文件),这将触发它 运行.
您可以使用以下方法访问第 n(5th) 个元素
lines.zipWithIndex().filter(lambda keyV: keyV[1]==5).first()[0]