06. PySpark 常见问题 - aliyun/MaxCompute-Spark GitHub Wiki

Local 模式(Spark 2.4.5)

  • 新建一个odps.conf文件,包含以下odps参数:
odps.project.name=***
odps.access.id=***
odps.access.key=***
odps.end.point=***
  • 在PyCharm中添加以下环境变量:
SPARK_HOME=/path/to/spark_home
PYTHONPATH=/path/to/spark_home/python
ODPS_CONF_FILE=/path/to/odps.conf
  • 在代码中添加以下配置:
spark = SparkSession.builder\
   .appName("spark sql")\
   .config("spark.eventLog.enabled", False)\
   .getOrCreate()
  • 直接运行pyspark作业即可

Cluster 模式(Spark 2.4.5)

作业执行抛出异常:***.so: cannot open shared object file: No such file or directory

上述抛出的异常,提示用户作业在执行加载时缺少对应的依赖,具体解决步骤如下:

MaxCompute Spark客户端

  • 公网下载对应的依赖文件
  • 提交作业时通过参数 --files /path/to/[lib名] 将对应的依赖文件加载至driver与executor的工作目录内

Dataworks Spark节点

  • 公网下载对应的依赖文件
  • 通过DataWorks,添加对应的依赖资源,即,创建MaxCompute资源
  • 作业提交新增补充参数,spark.hadoop.odps.cupid.resources = public.python-2.7.13-ucs4.tar.gz,[project名].[resource名].so:[resource名].so,
注意事项
由于上传的依赖资源是以project名称为前缀,所以需要对上传的resource名称进行重命名为需要的依赖,即,去掉project名称的前缀,这样才可以正确加载依赖