From fe8619882c5f2f5631ee7d1326e9558256753ca4 Mon Sep 17 00:00:00 2001 From: Ken Takagiwa Date: Fri, 1 Aug 2014 18:29:15 -0700 Subject: [PATCH] add py4j 0.8.2.1 but server is not launched --- LICENSE | 2 +- bin/pyspark | 2 +- bin/pyspark2.cmd | 2 +- .../apache/spark/api/python/PythonUtils.scala | 2 +- project/SparkBuild.scala | 2 +- python/lib/py4j-0.8.2.1-src.zip | Bin 0 -> 37800 bytes sbin/spark-config.sh | 2 +- sbin/spark-executor | 2 +- 8 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 python/lib/py4j-0.8.2.1-src.zip diff --git a/LICENSE b/LICENSE index 383f079df8c8b..e8e52800de12f 100644 --- a/LICENSE +++ b/LICENSE @@ -514,7 +514,7 @@ The following components are provided under a BSD-style license. See project lin (New BSD license) Protocol Buffer Java API (org.spark-project.protobuf:protobuf-java:2.4.1-shaded - http://code.google.com/p/protobuf) (The BSD License) Fortran to Java ARPACK (net.sourceforge.f2j:arpack_combined_all:0.1 - http://f2j.sourceforge.net) (The BSD License) xmlenc Library (xmlenc:xmlenc:0.52 - http://xmlenc.sourceforge.net) - (The New BSD License) Py4J (net.sf.py4j:py4j:0.8.1 - http://py4j.sourceforge.net/) + (The New BSD License) Py4J (net.sf.py4j:py4j:0.8.2.1 - http://py4j.sourceforge.net/) (Two-clause BSD-style license) JUnit-Interface (com.novocode:junit-interface:0.10 - http://github.com/szeiger/junit-interface/) (ISC/BSD License) jbcrypt (org.mindrot:jbcrypt:0.3m - http://www.mindrot.org/) diff --git a/bin/pyspark b/bin/pyspark index 69b056fe28f2c..39a20e2a24a3c 100755 --- a/bin/pyspark +++ b/bin/pyspark @@ -52,7 +52,7 @@ export PYSPARK_PYTHON # Add the PySpark classes to the Python path: export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH -export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.8.1-src.zip:$PYTHONPATH +export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH # Load the PySpark shell.py script when ./pyspark is used interactively: export OLD_PYTHONSTARTUP=$PYTHONSTARTUP diff --git a/bin/pyspark2.cmd b/bin/pyspark2.cmd index 0ef9eea95342e..2c4b08af8d4c3 100644 --- a/bin/pyspark2.cmd +++ b/bin/pyspark2.cmd @@ -45,7 +45,7 @@ rem Figure out which Python to use. if [%PYSPARK_PYTHON%] == [] set PYSPARK_PYTHON=python set PYTHONPATH=%FWDIR%python;%PYTHONPATH% -set PYTHONPATH=%FWDIR%python\lib\py4j-0.8.1-src.zip;%PYTHONPATH% +set PYTHONPATH=%FWDIR%python\lib\py4j-0.8.2.1-src.zip;%PYTHONPATH% set OLD_PYTHONSTARTUP=%PYTHONSTARTUP% set PYTHONSTARTUP=%FWDIR%python\pyspark\shell.py diff --git a/core/src/main/scala/org/apache/spark/api/python/PythonUtils.scala b/core/src/main/scala/org/apache/spark/api/python/PythonUtils.scala index 6d3e257c4d5df..52c70712eea3d 100644 --- a/core/src/main/scala/org/apache/spark/api/python/PythonUtils.scala +++ b/core/src/main/scala/org/apache/spark/api/python/PythonUtils.scala @@ -29,7 +29,7 @@ private[spark] object PythonUtils { val pythonPath = new ArrayBuffer[String] for (sparkHome <- sys.env.get("SPARK_HOME")) { pythonPath += Seq(sparkHome, "python").mkString(File.separator) - pythonPath += Seq(sparkHome, "python", "lib", "py4j-0.8.1-src.zip").mkString(File.separator) + pythonPath += Seq(sparkHome, "python", "lib", "py4j-0.8.2.1-src.zip").mkString(File.separator) } pythonPath ++= SparkContext.jarOfObject(this) pythonPath.mkString(File.pathSeparator) diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index 599714233c18f..7fca8f8c2b328 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -382,7 +382,7 @@ object SparkBuild extends Build { "org.tachyonproject" % "tachyon" % "0.4.1-thrift" excludeAll(excludeHadoop, excludeCurator, excludeEclipseJetty, excludePowermock), "com.clearspring.analytics" % "stream" % "2.7.0" excludeAll(excludeFastutil), // Only HyperLogLogPlus is used, which does not depend on fastutil. "org.spark-project" % "pyrolite" % "2.0.1", - "net.sf.py4j" % "py4j" % "0.8.1" + "net.sf.py4j" % "py4j" % "0.8.2.1" ), libraryDependencies ++= maybeAvro, assembleDeps, diff --git a/python/lib/py4j-0.8.2.1-src.zip b/python/lib/py4j-0.8.2.1-src.zip new file mode 100644 index 0000000000000000000000000000000000000000..646bbd532d5883943bbb25f33d505918a6f41394 GIT binary patch literal 37800 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