在DataWorks中使用MaxFrame

DataWorks为MaxCompute项目提供任务调度能力,且已在PyODPS 3节点内置了MaxFrame,您可直接使用DataWorks的PyODPS 3节点开发和运行MaxFrame作业。

前提条件

已创建MaxCompute数据源,并将其绑定至DataWorks目标工作空间。详情请参见绑定数据源或集群

使用MaxFrame

  1. 创建PyODPS 3节点。

    您可以进入DataWorks的数据开发页面创建PyODPS 3节点,详情请参见开发PyODPS 3任务

  2. 创建MaxFrame会话。

    PyODPS 3内置了MaxCompute用户和项目信息,因此您可以直接创建MaxFrame会话。代码示例如下:

    import maxframe.dataframe as md
    from maxframe import new_session
    from maxframe.config import options
    options.sql.enable_mcqa = False
    
    table = o.create_table("test_source_table", "a string, b bigint", if_not_exists=True)
    with table.open_writer() as writer:
        writer.write([
            ["value1", 0],
            ["value2", 1],
        ])
    
    # 创建MaxFrame session
    session = new_session(o)
    
    df = md.read_odps_table("test_source_table",index_col="b")
    df["a"] = "prefix_" + df["a"]
    
    # 打印dataframe数据
    print(df.execute().fetch())
    
    # MaxFrame DataFrame数据写入MaxCompute表
    md.to_odps_table(df, "test_prefix_source_table").execute()
    
    # 销毁 maxframe session
    session.destroy()
    

结果验证

执行上述Python代码并查询结果表数据,若结果符合预期,则表示MaxFrame安装成功,且已成功连接MaxCompute集群。

  1. 执行Python代码返回如下结果:

    b           a
    0  prefix_value1
    1  prefix_value2
  2. 在目标MaxCompute项目中运行如下SQL,查询test_prefix_source_table表的数据。

    SELECT * FROM test_prefix_source_table;

    返回结果:

    +------------+------------+
    | b          | a          |
    +------------+------------+
    | 0          | prefix_value1 |
    | 1          | prefix_value2 |
    +------------+------------+