在 Apache Spark 中使用 Python 获取第 n 个位置的字符串

Getting the string at nth position using Python in Apache Spark

lines = sc.textFile(fileName)  

我正在尝试从每一行的位置 10:20 获取字符串以进行一些处理。由于 lines 是一个 RDD,它给出了一个语法错误,表示没有 __getitem__.

请记住,linesStringRDD(集合),因此您需要在每个元素上调用一些东西 (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]