python - 无法在 Pyspark 中导入 Python 依赖项
问题描述
我正在按照databricks的这条指令在分布式环境中运行使用一些库,但是在使用jupyter
notebook时仍然出现错误conda
(在独立模式下)。
示例代码:
import pandas as pd
from pyspark.sql.functions import pandas_udf
@pandas_udf('double')
def pandas_plus_one(v: pd.Series) -> pd.Series:
return v + 1
spark.range(10).select(pandas_plus_one("id")).show()
我使用这些命令来创建conda
环境:
conda create -y -n pyspark_conda_env -c conda-forge pyarrow pandas conda-pack
conda activate pyspark_conda_env
conda pack -f -o pyspark_conda_env.tar.gz
我得到了这个错误:
ImportError: PyArrow >= 0.15.1 must be installed; however, it was not found.
所以我卸载pyarrow
并安装它pip install pyarrow
以获得最新版本。
但我仍然得到那个错误。
我什至在笔记本中使用此代码,但它也不起作用:
import os
from pyspark.sql import SparkSession
os.environ['PYSPARK_PYTHON'] = "./environment/bin/python"
spark = SparkSession.builder.config(
"spark.archives", # 'spark.yarn.dist.archives' in YARN.
"pyspark_conda_env.tar.gz#environment").getOrCreate()
我该如何解决这个问题?
解决方案
推荐阅读
- python - 我想让python在这个计算器中识别“num1”和“num2”是否是数字,以便python可以通知你没有输入有效的东西
- git - 解决报告的合并冲突后,是否需要重复运行相同的合并命令?
- javascript - 使用 lambda 在 socket.io 中发送 2 个参数的正确方法是什么?(在客户端和服务器中打印时我得到未定义)
- javascript - React - 子到父回调不起作用
- postgresql - 将json数组元素插入表的函数
- apache-spark - Spark Select 对不同对象的 JSON 数组进行选择
- arrays - 如何修复 yii2 BaseActiveRecord 无法显示、私有的 mongodb 数组?
- r - 对于 XY 坐标对,使用数据表,计算行数,将完整集写入 DT1,DT2 部分集
- raku - `MAIN()` 参数中的字符串匹配
- php - PHP 无法加载大于 1MB 的 PDF