

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建 PySpark 分析模板
<a name="create-pyspark-analysis-template"></a>

**注意**  
参数是用户提供的字符串，可以包含任意内容。  
查看代码以确保参数得到安全处理，以防止分析中出现意外行为。
无论提交时提供什么参数值，设计参数处理都要安全运行。

**先决条件**

 在创建 PySpark 分析模板之前，您必须具备以下条件：
+ 积极 AWS Clean Rooms 协作的成员资格
+ 访问活动协作中至少一个已配置的表
+ 创建分析模板的权限
+ 在 S3 中创建和存储的 Python 用户脚本和虚拟环境
  + S3 存储桶已启用版本控制。有关更多信息，请参阅[在 S3 存储桶中使用版本控制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)
  + S3 存储桶可以计算已上传项目的 SHA-256 校验和。有关更多信息，请参阅[使用校验和](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)
+ 从 S3 存储桶读取代码的权限

  有关创建所需服务角色的信息，请参阅[创建用于从 S3 存储桶读取代码的服务角色（PySpark 分析模板角色）](setting-up-roles.md#create-role-pyspark-analysis-template)。

以下过程描述了使用[AWS Clean Rooms 控制台](https://console.aws.amazon.com/cleanrooms/home)创建 PySpark 分析模板的过程。它假设您已经创建了用户脚本和虚拟环境文件，并将您的用户脚本和虚拟环境文件存储在 Amazon S3 存储桶中。

**注意**  
创建 PySpark 分析模板的成员也必须是接收结果的成员。

有关如何使用创建 PySpark 分析模板的信息 AWS SDKs，请参阅 [AWS Clean Rooms API 参考](https://docs.aws.amazon.com/clean-rooms/latest/apireference/Welcome.html)。

**创建 PySpark 分析模板**

1. 登录 AWS 管理控制台 并打开[AWS Clean Rooms 控制台，该控制台](https://console.aws.amazon.com/cleanrooms/home)将充当协作创建者。 AWS 账户 

1. 在左侧导航窗格中，选择**协作**。

1. 选择协作。

1. 在**模板**选项卡上，转到**您创建的分析模板**部分。

1. 选择**创建分析模板**。

1. 在 “**创建分析模板**” 页面上，对于**详细信息**，

   1. 输入分析模板的**名称**。

   1. （可选）输入**描述**。

   1. 对于 “**格式**”，选择**PySpark**选项。

1. 对于**定义**，

   1. 在继续操作之前，请查看**先**决条件并确保满足每个先决条件。

   1. 对于**入口点文件**，输入 S3 存储桶或选择 “**浏览 S3**”。

   1. （可选）对于**库文件**，输入 S3 存储桶或选择 “**浏览 S3**”。

1. 对于**参数-可选**，如果您想添加参数以使分析模板可重复使用：

   1. 选择 **Add parameter (添加参数)**。

   1. 输入**参数名称**。

      参数名称必须以字母或下划线开头，后跟字母数字字符或下划线。

   1. 对于 **“类型**”，系统会自动选择 **STRING** 作为 PySpark 分析模板唯一支持的类型。

   1. （可选）输入参数的**默认值**。

      如果您提供默认值，则作业运行器可以在运行作业时使用此值，而无需明确提供参数值。

   1. 要添加更多参数，请选择**添加其他参数**并重复前面的步骤。
**注意**  
每个 PySpark 分析模板最多可以定义 50 个参数。每个参数值最多可包含 1,000 个字符。

1. 对于**定义中引用的表**，
   + 如果定义中引用的所有表都已与协作关联：
     + 将 “**定义中引用的所有表都已关联到协作**” 复选框保持选中状态。
     + 在与**协作关联的表格**下，选择定义中引用的所有关联表。
   + 如果定义中引用的所有表都未与协作关联：
     + 清除 “**定义中引用的所有表都已关联到协作**” 复选框。
     + 在与**协作关联的表格**下，选择定义中引用的所有关联表。
     + 在**稍后将关联的表**下，输入表名。
     + 选择 “**列出其他表**” 以列出另一个表。

1. 对于**错误消息配置**，请选择以下选项之一：
   + **基本错误消息**-返回基本错误消息而不暴露基础数据。建议用于生产工作负载。
   + **详细的错误消息**-返回详细的错误消息，以便更快地进行故障排除。建议在开发和测试环境中使用。可能会暴露敏感数据，包括个人身份信息 (PII)。
**注意**  
使用**详细错误消息**时，所有数据提供者成员都必须批准模板的此设置。

1. 通过从下拉列表中选择**现有服务角色名称**来指定服务**访问**权限。

   1. 如果您有列出角色的权限，则会显示角色列表。

      如果您没有列出角色的权限，可以输入要使用的角色的 Amazon 资源名称 (ARN)。

   1. 通过选择**在 IAM 中查看**外部链接来查看服务角色。

      如果没有现有的服务角色，则**使用现有服务角色**选项不可用。

      默认情况下， AWS Clean Rooms 不会尝试更新现有角色策略以添加必要的权限。
**注意**  
AWS Clean Rooms 需要权限才能根据分析规则进行查询。有关权限的更多信息 AWS Clean Rooms，请参阅[AWS 的托管策略 AWS Clean Rooms](security-iam-awsmanpol.md)。
如果该角色没有足够的权限 AWS Clean Rooms，则会收到一条错误消息，指出该角色没有足够的权限 AWS Clean Rooms。必须先添加角色策略，然后才能继续。
如果您无法修改角色策略，则会收到一条错误消息，指出 AWS Clean Rooms 找不到该服务角色的策略。

1. 如果要为已配置的表资源启用**标签**，请选择**添加新标签**，然后输入**键**和**值**对。

1. 选择**创建**。

1. 现在，您可以通知您的协作成员他们可以[查看分析模板](review-analysis-template.md)。（如果您想查询自己的数据，则是可选的。）

**重要**  
创建分析模板后，请勿修改或移除构件（用户脚本或虚拟环境）。  
这样做将：  
导致所有使用此模板的 future 分析作业失败。
需要使用新构件创建新的分析模板。
不影响先前完成的分析作业。