ODPS Spark节点支持使用Java和Python处理数据,本文为您介绍如何新建和配置ODPS Spark节点。
背景信息
Python资源是针对Python UDF进行开发,能够获取的可以直接依赖的三方包较为有限,因此使用Python资源的局限性较大。如果您需要使用Python资源中未支持的三方包,请参见在MaxCompute UDF中运行Scipy。PyODPS 2和PyODPS 3节点对Python资源的支持性更强大,详情请参见创建PyODPS 2节点和创建PyODPS 3节点。
本文分别为您介绍如何创建JAR资源和Python资源,并在创建ODPS Spark节点后加载不同类型的资源,您可以根据业务需求进行操作。
创建JAR资源
- 进入数据开发页面。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据开发。
- 鼠标悬停至
图标,单击 。
您也可以找到相应的业务流程,右键单击MaxCompute,选择 。 - 在新建资源对话框中,输入资源名称,并选择目标文件夹。 说明
- 如果绑定多个实例,则需要选择MaxCompute引擎实例。
- 如果该JAR包已经在MaxCompute(ODPS)客户端上传过,则需要取消勾选上传为ODPS资源,否则上传会报错。
- 资源名称无需与上传的文件名保持一致。
- 资源名称命名规范:1~128个字符,字母、数字、下划线、小数点,大小写不敏感,JAR资源的后缀为.jar,Python资源的后缀为.py。
- 单击点击上传,选择相应的文件进行上传。WordCount的示例代码请参见WordCount。
- 单击新建。
- 单击工具栏中的
图标,上传文件。
- 在提交新版本对话框中,输入变更描述,单击确认。
创建Python资源
- 在数据开发页面,鼠标悬停至
图标,单击 。
您也可以找到相应的业务流程,右键单击MaxCompute,选择 。 - 在新建资源对话框中,输入资源名称,并选择目标文件夹。 说明
- 如果绑定多个实例,则需要选择MaxCompute引擎实例。
- 资源名称只能包含中文、字母、数字、点、下划线(_)、减号(-),且必须加后缀名.py。
- 创建的Python资源仅支持Python 2.x和Python 3.x版本的Python代码。
- 单击新建。
- 在节点的编辑页面,输入Python代码。代码示例如下,仅进行校检数值判断,非数据业务处理逻辑。
# -*- coding: utf-8 -*- import sys from pyspark.sql import SparkSession try: # for python 2 reload(sys) sys.setdefaultencoding('utf8') except: # python 3 not needed pass if __name__ == '__main__': spark = SparkSession.builder\ .appName("spark sql")\ .config("spark.sql.broadcastTimeout", 20 * 60)\ .config("spark.sql.crossJoin.enabled", True)\ .config("odps.exec.dynamic.partition.mode", "nonstrict")\ .config("spark.sql.catalogImplementation", "odps")\ .getOrCreate() def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError, ValueError): pass return False print(is_number('foo')) print(is_number('1')) print(is_number('1.3')) print(is_number('-1.37')) print(is_number('1e3'))
- 单击工具栏中的
图标,上传文件。
- 在提交新版本对话框中,输入变更描述,单击确认。
创建ODPS Spark节点
- 在DataStudio(数据开发)页面,鼠标悬停至
图标,单击 。
您也可以打开相应的业务流程,右键单击MaxCompute,选择 。 - 在新建节点对话框中,输入节点名称,并选择目标文件夹。
- 单击提交。
- 在ODPS Spark编辑页面,配置各项参数。ODPS Spark的详情请参见概述。ODPS Spark节点支持两种spark版本和语言。选择不同的语言,会显示相应不同的配置,您可以根据界面提示进行配置:
- 选择语言为Java/Scala,配置如下。
参数 描述 spark版本 包括Spark1.x和Spark2.x两个版本。 语言 此处选择Java/Scala。 选择主jar资源 从下拉列表中选择您已上传的JAR资源。 配置项 单击添加一条,即可配置key和value。 Main Class 选择类名称。 参数 添加参数,多个参数之间用空格分隔。支持使用调度参数,配置中直接使用${变量名},在右侧调度配置参数处给变量赋值。调度参数支持的赋值格式请参见调度参数支持的格式。 说明 您需要在配置调度参数后,再在编辑页面配置节点参数,系统会顺序执行。选择jar资源 ODPS Spark节点根据上传的文件类型自动过滤,选择下拉框中显示的您已上传的JAR资源。 选择file资源 ODPS Spark节点根据上传的文件类型自动过滤,选择下拉框中显示的您已上传的File资源。 选择archives资源 ODPS Spark节点根据上传的文件类型自动过滤,选择下拉框中显示的您已上传的Archives资源,仅展示压缩类型的资源。 - 选择语言为Python,配置如下。
参数 描述 spark版本 包括Spark1.x和Spark2.x两个版本。 语言 此处选择Python。 选择主python资源 从下拉列表中选择您已创建的Python资源。 配置项 单击添加一条,即可配置key和value。 参数 添加参数,多个参数之间用空格分隔。支持使用调度参数,配置中直接使用${变量名},在右侧调度配置参数处给变量赋值。调度参数使用方式请参考文档:调度参数支持的格式 选择python资源 ODPS Spark节点根据上传的文件类型自动过滤,选择下拉框中显示的您已上传的Python资源。 选择file资源 ODPS Spark节点根据上传的文件类型自动过滤,选择下拉框中显示的您已上传的File资源。 选择archives资源 ODPS Spark节点根据上传的文件类型自动过滤,选择下拉框中显示的您已上传的Archives资源,仅展示压缩类型的资源。
- 选择语言为Java/Scala,配置如下。
- 单击节点编辑区域右侧的调度配置,配置节点的调度属性,详情请参见配置基础属性。
- 保存并提交节点。重要 您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
- 单击工具栏中的
图标,保存节点。
- 单击工具栏中的
图标。
- 在提交新版本对话框中,输入变更描述。
- 单击确认。
如果您使用的是标准模式的工作空间,提交成功后,请单击右上方的发布。具体操作请参见发布任务。 - 单击工具栏中的
- 任务运维,详情请参见周期任务运维概述。