apache-spark - 在纱线上使用 python 3.x 运行 spark 2.3
问题描述
我正在尝试使用 spark-submit 运行示例 pi.py,但出现以下错误,
Python 3.6.5
[GCC 4.3.4 [gcc-4_3-branch revision 152973]] on linux
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
File "/var/lib/spark/python/pyspark/shell.py", line 31, in <module>
from pyspark import SparkConf
File "/var/lib/spark/python/pyspark/__init__.py", line 110, in <module>
from pyspark.sql import SQLContext, HiveContext, Row
File "/var/lib/spark/python/pyspark/sql/__init__.py", line 45, in <module>
from pyspark.sql.types import Row
File "/var/lib/spark/python/pyspark/sql/types.py", line 27, in <module>
import ctypes
File "Python-3.6.5_suse/lib/python3.6/ctypes/__init__.py", line 7, in <module>
from _ctypes import Union, Structure, Array
ImportError: libffi.so.4: cannot open shared object file: No such file or directory
我是 python 和 spark 的新手,但是当我将 spark-defaults.sh 中的 PYSPARK_PYTHON 路径设置为一些旧版本的 python(如 3.3.x)时,它工作得非常好。
我是否设置错误或我确实需要任何其他库?这看起来像图书馆问题。
谢谢!
解决方案
我发现了问题所在!我的小型纱线集群有不同的操作系统主机,一些 suse 的一些 centos 的,当我在 spark-env.sh 中设置 PYSPARK_PYTHON 时,该配置有一个中央 python 路径,因此库不匹配,它抛出了 libffi.so 错误。因此,根据 lib python 路径检查主机操作系统的类型很有帮助。一旦我设置了正确的路径并运行,
./bin/spark-submit --deploy-mode client examples/src/main/python/pi.py
然后我可以验证本地库是否设置正确。我不需要按照评论或其他答案中的建议安装任何其他 python 库,例如 pyspark 或 py4j。
推荐阅读
- php - 如何在 PHP 中解析 JSON 数组并显示在 HTML 表中?
- svelte - Sveltekit 无服务器适配器,如 vercel 或适配器静态?
- python - discord.py 上的 Deafen Members 和 Whisper 命令
- python - 安装 python Bringing-Old-Photos-Back-to-Life 时出现问题
- sql - 查找产品的第一个实例
- javascript - 如何更改材质 UI 警报组件的类型?
- .net-core - .Net Core Worker Service 应该只在 Windows 服务开启时运行
- ssh - 恢复仍然缓存在 ssh-add 上的丢失的 SSH 密钥
- javascript - Angular 未在 HTML 中呈现字符串变量
- sql-server - SQL 中的 XML 命名空间混淆