为什么这段python代码在pyspark中工作,而在spark中不工作?

为什么这段python代码在pyspark中工作,而在spark中不工作?,python,amazon-web-services,pyspark,Python,Amazon Web Services,Pyspark,我对python相当缺乏经验,并且在运行某些代码时遇到困难 counts = {key:len(list(group)) for key, group in it.groupby(sorted(topics))} 该行将在pyspark(交互模式)下运行,但如果我尝试spark submit它,我会得到一个SyntaxError异常。以下代码是等效的,并在两种情况下运行: counts = {} for key, group in it.groupby(sorted(topics)):

我对python相当缺乏经验,并且在运行某些代码时遇到困难

counts = {key:len(list(group)) for key, group in it.groupby(sorted(topics))}
该行将在
pyspark
(交互模式)下运行,但如果我尝试
spark submit
它,我会得到一个
SyntaxError
异常。以下代码是等效的,并在两种情况下运行:

counts = {}
for key, group in it.groupby(sorted(topics)):
    counts[key] = len(list(group))
谁能告诉我为什么第一个代码在spark submit中不起作用。如果有差异,代码将在function 1 tab out中执行

我使用字典理解得到的例外情况:

Traceback (most recent call last):
  File "./sessions.py", line 24, in <module>
    execfile("./sessionSearch.py")
  File "./sessionSearch.py", line 50
    counts = {poop:len(list(group)) for poop, group in it.groupby(sorted(topics))}
                                      ^
SyntaxError: invalid syntax
回溯(最近一次呼叫最后一次):
文件“/sessions.py”,第24行,在
execfile(“./sessionSearch.py”)
文件“/sessionSearch.py”,第50行
计数={poop:len(列表(组)),用于poop,其中的组。groupby(排序(主题))}
^
SyntaxError:无效语法

您的集群运行的是Python 2.6,它不支持字典理解语法

使用生成器表达式加上
dict()
函数(请参阅),或

使用
dict()
您的行将是:

counts = dict((key, len(list(group))) for key, group in it.groupby(sorted(topics)))

请指定您得到的特定语法错误。