将 MLtable 对象转换为 pyspark 数据框

问题描述 投票:0回答:1

我在 Azure 机器学习中拥有数据资产。 我想将其转换为 Pyspark 数据框。 在数据资产的“使用”选项卡中,我获得了将其转换为 Pandas 数据框的代码。 然而,这个数据很大(1 Tb+),所以它不适合 Pandas 数据框。

这是我正在使用的代码:

import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_asset = ml_client.data.get("data_asset_name", version="1")

tbl = mltable.load(data_asset.path)

df = tbl.to_pandas_dataframe()
df

功能

to_pandas_dataframe()

将 MLTable 转换为 pandas 数据框。

有什么函数/方式可以将其转换为 pyspark 数据框吗?

python azure pyspark azure-machine-learning-service
1个回答
0
投票

您可以将

mltable
数据资产直接传递给Spark作业;无需创建 Spark DataFrame。这是示例代码:

from azure.ai.ml import MLClient, spark, Input, Output
from azure.identity import DefaultAzureCredential

ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)

spark_job = spark(
    display_name="Titanic-Spark-Job-SDK-6",
    code="./src",
    entry={"file": "titanic.py"},
    driver_cores=1,
    driver_memory="2g",
    executor_cores=2,
    executor_memory="2g",
    executor_instances=2,
    resources={
        "instance_type": "Standard_E4s_v3",
        "runtime_version": "3.2.0",
    },
    inputs={
        "titanic_data": Input(
            type="mltable",
            path=data_asset.id,
            mode="direct"
        ),
    },
    outputs={
        "wrangled_data": Output(
            type="uri_folder",
            path="azureml://datastores/workspaceblobstore/paths/data/wrangled/",
            mode="direct",
        ),
    },
    args="--titanic_data ${{inputs.titanic_data}} --wrangled_data ${{outputs.wrangled_data}}",
)

returned_spark_job = ml_client.jobs.create_or_update(spark_job)

# Wait until the job completes
ml_client.jobs.stream(returned_spark_job.name)

在这里,我将输入类型指定为

mltable
和路径数据资产 id。

输出被写入到wrangled文件夹中。

enter image description here

如果您仍然想创建 pandas 数据框,唯一的方法是在无服务器 Spark 计算中使用 pandas 数据框。

spark.createDataFrame(pandas_dataframe)

请参阅 this github 了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.