gpt4 book ai didi

python - 在工作节点上安装 SPARK 模块

转载 作者:太空狗 更新时间:2023-10-30 02:10:15 28 4
gpt4 key购买 nike

我在 cloudera 环境中以独立模式运行 SPARK 1.3。我可以从 ipython 笔记本运行 pyspark,但是一旦我添加第二个工作节点,我的代码就会停止运行并返回错误。我很确定这是因为我的主节点上的模块对工作节点不可见。我尝试导入 numpy,但即使我通过 anaconda 在我的 worker 上安装了 numpy,它也没有用。我以相同的方式在 master 和 worker 上安装了 anaconda。

但是,根据 Josh Rosen 的建议,我确保在工作节点上安装了这些库。

https://groups.google.com/forum/#!topic/spark-users/We_F8vlxvq0

但是,我似乎仍然遇到问题。包括我的 worker 无法识别命令 abs 的事实。这是 python 2.6 中的标准

我正在运行的代码来自这篇文章:

https://districtdatalabs.silvrback.com/getting-started-with-spark-in-python

def isprime(n):
"""
check if integer n is a prime
"""
# make sure n is a positive integer
n = abs(int(n))
# 0 and 1 are not primes
if n < 2:
return False
# 2 is the only even prime number
if n == 2:
return True
# all other even numbers are not primes
if not n & 1:
return False
# range starts with 3 and only needs to go up the square root of n
# for all odd numbers
for x in range(3, int(n**0.5)+1, 2):
if n % x == 0:
return False
return True

# Create an RDD of numbers from 0 to 1,000,000
nums = sc.parallelize(xrange(1000000))

# Compute the number of primes in the RDD
print nums.filter(isprime).count()

最佳答案

我也经常将 anaconda 发行版与 PySpark 一起使用,发现设置 PYSPARK_PYTHON 变量很有用,指向 anaconda 发行版中的 python 二进制文件。我发现否则我会遇到很多奇怪的错误。您可以通过运行 rdd.map(lambda x: sys.executable).distinct().collect() 来检查是否正在使用 python。我怀疑它没有指向正确的位置。

无论如何,我建议将路径和环境变量的配置包装在脚本中。我使用以下内容。

def configure_spark(spark_home=None, pyspark_python=None):
spark_home = spark_home or "/path/to/default/spark/home"
os.environ['SPARK_HOME'] = spark_home

# Add the PySpark directories to the Python path:
sys.path.insert(1, os.path.join(spark_home, 'python'))
sys.path.insert(1, os.path.join(spark_home, 'python', 'pyspark'))
sys.path.insert(1, os.path.join(spark_home, 'python', 'build'))

# If PySpark isn't specified, use currently running Python binary:
pyspark_python = pyspark_python or sys.executable
os.environ['PYSPARK_PYTHON'] = pyspark_python

当您指向您的 anaconda 二进制文件时,您还应该能够导入安装在其 site-packages 目录中的所有包。此技术也适用于 conda 环境。

关于python - 在工作节点上安装 SPARK 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039223/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com