Python 使用pyspark筛选数组中基于RDD的值

Python 使用pyspark筛选数组中基于RDD的值,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,使用pypark(python3),我试图创建和过滤数组中基于RDD的元素 INCLUDE_CITIES = {'Philadephia','Buffalo','Syracuse'} ... ... ... rddFiltered = sc.textFile(fileLocation).filter(lambda line: line in INCLUDE_STATIONS) print (rddFiltered.take(10)) 只有当我从数组中找到城市时,我才希望内容在RDD中。上面

使用pypark(python3),我试图创建和过滤数组中基于RDD的元素

INCLUDE_CITIES = {'Philadephia','Buffalo','Syracuse'}
...
...
...
rddFiltered = sc.textFile(fileLocation).filter(lambda line: line in INCLUDE_STATIONS)

print (rddFiltered.take(10)) 
只有当我从数组中找到城市时,我才希望内容在RDD中。上面的语法不正确,但我需要一些帮助。我现在想坚持使用RDD,而不使用数据集或DF。
感谢您的帮助。提前感谢。

这是因为您的文本文件有问题或者可能您没有将文本文件放入HDFS(使用命令HDFS dfs-put cities.txt将文本文件放入HDFS主目录)

这个例子很适合我

1) 创建一个文本文件

cities.txt

Varun,23,Buffalo
Trump,29,Syracuse
Obama,91,Phili
2) 将文本文件放在hdfs中

hdfs dfs -put cities.txt
2) 运行代码


抱歉@vi_ral。我没有使用HDFS。这是一个使用Spark和Hadoop的独立EC2实例。城市在第6栏。所以,我只想要那些记录/行,它们的值来自第6列中的数组。我编辑了代码,为了简单起见,我只包含了三列。编辑此代码,使其从第6列获取数据。如果可行,也将其标记为正确答案。谢谢,谢谢。太棒了。
cities = {'Philadephia','Buffalo','Syracuse'}
cities_from_file = sc.textFile("cities.txt").map(lambda line: line.split(",")[2]).filter(lambda city: city in cities)
cities_from_file.take(5)

[u'Buffalo', u'Syracuse']