MaxCompute Spark支持用户使用原生的Spark本地模式,便于用户进行小批量数据验证和任务调试。本文以Spark 3.1为例介绍IDEA和Shell两种使用方式。
使用IDEA调试
步骤一:下载并解压Spark客户端
点击链接或在终端输入如下指令下载并解压Spark客户端,示例为Spark
3.1.1-odps0.47.0版本。wget https://odps-repo.oss-cn-hangzhou.aliyuncs.com/spark/3.1.1-odps0.47.0/spark-3.1.1-odps0.47.0-client.tar.gz tar zxvf spark-3.1.1-odps0.47.0-client.tar.gz确认文件位置并已正确下载解压

步骤二:创建并修改odps.conf配置文件
在spark-3.1.1-odps0.47.0-client/conf下创建odps.conf文件:
touch odps.conf
vim odps.conf并在文件中添加如下配置:
odps.project.name = [替换为实际project]
odps.end.point = [替换为实际endpoint]
odps.access.id = [替换为实际access id]
odps.access.key = [替换为实际access key]步骤三:通过IDEA打开示例项目
在 IntelliJ IDEA 的欢迎界面,单击仓库克隆,输入仓库地址
https://github.com/aliyun/MaxCompute-Spark.git。
IDEA可能会弹出安全提示,询问是否信任此项目,点击信任即可。
克隆成功后,IDEA会自动打开这个项目,但它打开的是根目录
MaxCompute-Spark。需要关闭当前项目,然后重新打开正确的子目录。关闭当前项目:
点击 IDEA 菜单栏的
File->Close Project。回到 IDEA 欢迎界面。
打开子目录项目:
在欢迎界面,点击
Open。在弹出的文件浏览器中,导航至刚刚克隆的文件夹。
进入这个
MaxCompute-Spark文件夹,然后选择里面的spark-3.x子目录,点击Open。

步骤四:添加MaxCompute Spark Jars依赖
如图所示,进入File > Project Structure

如图所示,左侧选择
Modules,点击+,添加JARs or Directories。
选择步骤一中解压的
spark-3.1.1-odps0.47.0-client/jars目录。
在IDEA单击OK,确认添加。
步骤五:添加ODPS_CONF_FILE环境变量
单击IDEA右上角
Edit Configurations
配置环境变量

添加
ODPS_CONF_FILE,Name为ODPS_CONF_FILE,Value为步骤二创建的odps.conf文件的位置。
单击OK配置完成。
步骤六:运行任务JavaSparkSQL.java
在第48行添加如下代码,配置为本地模式
.config("spark.master","local[*]")
在第113行添加如下代码,手动添加分区。
spark.sql("ALTER TABLE " + ptTableName + " ADD IF NOT EXISTS PARTITION (pt1='2018', pt2='0601')");
注释第118行代码,本地模式暂不支持动态分区覆盖。
ptDf.write().mode("overwrite").insertInto(ptTableName);
单击运行,返回结果如下:
使用Shell调试
步骤一:下载并解压Spark客户端
点击链接或在终端输入如下指令下载并解压Spark客户端,示例为Spark
3.1.1-odps0.47.0版本。wget https://odps-repo.oss-cn-hangzhou.aliyuncs.com/spark/3.1.1-odps0.47.0/spark-3.1.1-odps0.47.0-client.tar.gz tar zxvf spark-3.1.1-odps0.47.0-client.tar.gz确认文件位置并已正确下载解压

步骤二:创建并修改odps.conf配置文件
在spark-3.1.1-odps0.47.0-client/conf下创建odps.conf文件:
touch odps.conf
vim odps.conf并在文件中添加如下配置:
odps.project.name = [替换为实际project]
odps.end.point = [替换为实际endpoint]
odps.access.id = [替换为实际access id]
odps.access.key = [替换为实际access key]步骤三:修改spark-defaults.conf配置文件
在spark-3.1.1-odps0.47.0-client/conf下找到spark-defaults.conf文件:
cd spark-3.1.1-odps0.47.0-client/conf
vim spark-defaults.conf
注释掉以下配置
#spark.master = yarn
#spark.submit.deployMode = cluster
#spark.eventLog.enabled = true
添加配置
spark.master = local[*]步骤四:添加HADOOP_CONF_DIR环境变量
export HADOOP_CONF_DIR=/PATH/TO/spark-3.1.1-odps0.47.0-client/conf步骤五:打开pyspark shell
cd spark-3.1.1-odps0.47.0-client
./bin/pyspark执行成功示意图如下:

步骤六:执行Spark SQL
查询配置文件中填写的MaxCompute项目内存在的表。
spark.sql("SELECT * FROM xxxx").show(); 





