为什么此 python 代码在 pyspark 中有效,但在 spark-submit 中无效?
Why does this python code work in the pyspark but not in spark-submit?
我对 python 相当缺乏经验,而且我在获取一些代码时遇到了问题 运行ning。
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 中不起作用。如果有所不同,代码将在功能 1 选项卡内执行。
我使用字典理解得到的异常:
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
您的集群运行 Python 2.6,它不支持字典理解语法。
要么使用生成器表达式加上 dict()
函数(参见 Alternative to dict comprehension prior to Python 2.7), or configure your cluster to deploy Python 2.7。
使用 dict()
你的行将是:
counts = dict((key, len(list(group))) for key, group in it.groupby(sorted(topics)))
我对 python 相当缺乏经验,而且我在获取一些代码时遇到了问题 运行ning。
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 中不起作用。如果有所不同,代码将在功能 1 选项卡内执行。
我使用字典理解得到的异常:
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
您的集群运行 Python 2.6,它不支持字典理解语法。
要么使用生成器表达式加上 dict()
函数(参见 Alternative to dict comprehension prior to Python 2.7), or configure your cluster to deploy Python 2.7。
使用 dict()
你的行将是:
counts = dict((key, len(list(group))) for key, group in it.groupby(sorted(topics)))