簡體   English   中英

Spark回歸示例無效語法錯誤

[英]spark regression example invalid syntax error

我正在嘗試[page] [1]中的示例。 為什么會出現無效的語法錯誤?

>>> MSE = valuesAndPreds.map(lambda (v,p): (v - p)**2).reduce(lambda x, y: x + y) / valuesAndPreds.count()
  File "<stdin>", line 1
    MSE = valuesAndPreds.map(lambda (v,p): (v - p)**2).reduce(lambda x, y: x + y) / valuesAndPreds.count()
                                    ^
SyntaxError: invalid syntax

版本信息

>>> print(sys.version)
3.5.1 |Anaconda 2.5.0 (64-bit)| (default, Jan 29 2016, 15:01:46) [MSC v.1900 64 bit (AMD64)]

>>> sys.version_info
sys.version_info(major=3, minor=5, micro=1, releaselevel='final', serial=0)

我嘗試了評論中的建議,但沒有運氣

>>> MSE = valuesAndPreds.map(lambda v, p: (v - p)**2).reduce(lambda x, y: x + y) / valuesAndPreds.count()
[Stage 179:>                                                        (0 + 2) / 2]16/03/14 20:06:22 ERROR Executor: Exception in task 0.0 in stage 179.0 (TID 346)
org.apache.spark.api.python.PythonException: Traceback (most recent call last):

Pyspark應該告訴您使用哪個Python版本:

$ ./pyspark
...
Using Python version 2.7.10 (default, Dec 25 2015 13:37:32)
SparkContext available as sc, HiveContext available as sqlContext.

您可以使用python --version命令在控制台中檢查python版本。 如果您使用的是Python版本3,則在該版本中,您使用的語法不正確,應為:

valuesAndPreds.map(lambda kv: (kv[0] - kv[1])**2)

再說一遍,我不知道PySpark在Python3上的表現如何。

如果要與Python 2一起運行,可以通過導出此env變量export PYSPARK_PYTHON=python2 您也可以在啟動pysparkPYSPARK_PYTHON=python2 ./bin/pyspark例如PYSPARK_PYTHON=python2 ./bin/pyspark

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM