【问题标题】:running pyspark.mllib on Ubuntu在 Ubuntu 上运行 pyspark.mllib
【发布时间】:2016-11-14 08:44:30
【问题描述】:

我正在尝试在 python 中链接 Spark。下面的代码是test.py,我把它放在~/spark/python下面:

from pyspark import SparkContext, SparkConf
from pyspark.mllib.fpm import FPGrowth
conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)
data = sc.textFile("data/mllib/sample_fpgrowth.txt")
transactions = data.map(lambda line: line.strip().split(' '))
model = FPGrowth.train(transactions, minSupport=0.2, numPartitions=10)
result = model.freqItemsets().collect()
for fi in result:
    print(fi)

然后我运行python test.py 得到这个错误消息:

Exception in thread "main" java.lang.IllegalStateException: Library directory '/home/user/spark/lib_managed/jars' does not exist.
        at org.apache.spark.launcher.CommandBuilderUtils.checkState(CommandBuilderUtils.java:249)
        at org.apache.spark.launcher.AbstractCommandBuilder.buildClassPath(AbstractCommandBuilder.java:208)
        at org.apache.spark.launcher.AbstractCommandBuilder.buildJavaCommand(AbstractCommandBuilder.java:119)
        at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildSparkSubmitCommand(SparkSubmitCommandBuilder.java:195)
        at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildCommand(SparkSubmitCommandBuilder.java:121)
        at org.apache.spark.launcher.Main.main(Main.java:86)
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    conf = SparkConf().setAppName(appName).setMaster(master)
  File "/home/user/spark/python/pyspark/conf.py", line 104, in __init__
    SparkContext._ensure_initialized()
  File "/home/user/spark/python/pyspark/context.py", line 245, in _ensure_initialized
    SparkContext._gateway = gateway or launch_gateway()
  File "/home/user/spark/python/pyspark/java_gateway.py", line 94, in launch_gateway
    raise Exception("Java gateway process exited before sending the driver its port number")
Exception: Java gateway process exited before sending the driver its port number

我将test.py 移动到~/spark,然后我得到:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from pyspark import SparkContext, SparkConf
ImportError: No module named pyspark

我从官网克隆了 Spark 项目。 操作系统系统:Ubuntu Java版本:1.7.0_79 Python版本:2.7.11

谁能给我一些提示来解决这个问题?

【问题讨论】:

    标签: python-2.7 ubuntu apache-spark pyspark apache-spark-mllib


    【解决方案1】:

    Spark 程序必须通过“Spark-submit”提交。更多信息:Documentation

    您应该尝试运行:$SPARK_HOME/bin/spark-submit test.py 而不是 python test.py

    【讨论】:

    • 谢谢!这样,我就可以编写自己的python文件了。而且运行流畅!
    【解决方案2】:

    如果您还没有设置SPARK_HOME,请检查this,并将其库添加到PYTHONPATH

    还有,

    我从官网克隆Spark项目

    不建议这样做,因为它可能会带来很多依赖问题。您可以尝试download 使用 Hadoop 的预构建版本,然后使用指令here 在本地模式下对其进行测试。

    【讨论】:

    • 谢谢!我只是运行本地模式,并成功测试它。但是,我真的不明白其中的区别。
    猜你喜欢
    • 1970-01-01
    • 2013-10-31
    • 2018-01-29
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多