将筛选器应用于我的Spark上下文(sc)时,语法无效

时间:2019-07-15 00:03:54

标签: scala apache-spark pyspark

在pyspark Python 3笔记本中运行代码时,我收到无效的语法错误,看起来像我正在研究和练习的原始代码在scala中,语法略有不同... 该问题似乎与'=>'运算符有关,但似乎无法找出要使用的正确运算符,因为我还是该语言的新手

for i in range(1980, 2016):
    print(i)
    yearStats = sc.textFile("./BasketballStats-master.zip\BasketballStats-master\data\leagues_NBA_$i*")
    yearStats.filter(x => x.contains(",")).map(x =>  (i,x)).saveAsTextFile("./BasketballStats\$i")

1 个答案:

答案 0 :(得分:2)

您正在混合使用ScalaPython的语法。您已经在For Loop中编写了Python,并在Scala中编写了其余代码。

Python代码

for i in range(1980, 2016):
    print(i)
    yearStats = sc.textFile("./BasketballStats-master.zip\BasketballStats-master\data\leagues_NBA_$i*")
    yearStats.filter(lambda x : x.contains(",")).map( lambda x:  (i,x)).saveAsTextFile("./BasketballStats")

标量代码

for (i <- 1980 to 2016){
    prinln(i)
    yearStats = sc.textFile("./BasketballStats-master.zip\BasketballStats-master\data\leagues_NBA_$i*")
    yearStats.filter(x => x.contains(",")).map(x =>  (i,x)).saveAsTextFile("./BasketballStats")
}