保姆级教程:通过开发终端节点设置 PyCharm Professional

「本文所述均为个人主观经验,如有雷同,八成他也踩过一样的坑」
天云摘要
万物皆可共享
文章最后更新时间:2025-03-03 19:58:28,若有错误或已失效,请在下方 留言

前言

教程介绍如何将您的本地计算机上运行的 PyCharm Professional Python IDE 连接到开发终端节点,以便您交互运行、调试和测试 AWS Glue ETL(提取、转换和加载)脚本,然后再进行部署。本教程中的说明和屏幕截图基于 PyCharm Professional 版本 2019.3。

将 PyCharm Professional 连接到开发终端节点

  1. 在 PyCharm 中创建新的纯 Python 项目,将其命名为 legislators
  2. 在项目中创建一个名为 get_person_schema.py 的文件,该文件包含以下内容:
from pyspark.context import SparkContext
from awsglue.context import GlueContext


def main():
    # Create a Glue context
    glueContext = GlueContext(SparkContext.getOrCreate())

    # Create a DynamicFrame using the 'persons_json' table
    persons_DyF = glueContext.create_dynamic_frame.from_catalog(database="legislators", table_name="persons_json")

    # Print out information about this data
    print("Count:  ", persons_DyF.count())
    persons_DyF.printSchema()


if __name__ == "__main__":
    main()
  1. 请执行以下操作之一:
    • 对于 AWS Glue 版本 0.9,将 AWS Glue Python 库文件 PyGlue.zip 从 https://s3.amazonaws.com/aws-glue-jes-prod-us-east-1-assets/etl/python/PyGlue.zip 下载到您的本地计算机上的方便位置。
    • 对于 AWS Glue 版本 1.0 及更高版本,将 AWS Glue Python 库文件 PyGlue.zip 从 https://s3.amazonaws.com/aws-glue-jes-prod-us-east-1-assets/etl-1.0/python/PyGlue.zip 下载到您的本地计算机上的方便位置。
  2. 在 PyCharm 中将 PyGlue.zip 添加为您项目的内容根:
    • 在 PyCharm 中,依次选择 File (文件)、Settings (设置),打开 Settings (设置) 对话框。(也可以按 Ctrl+Alt+S。)
    • 展开 legislators 项目,然后选择 Project Structure (项目结构)。然后,在右侧窗格中,选择 + Add Content Root (+ 添加内容根)。
    • 导航到您保存 PyGlue.zip 的位置,选择该位置,然后选择 Apply (应用)。
    Settings (设置) 屏幕上显示的内容应类似于:
保姆级教程:通过开发终端节点设置 PyCharm Professional-天云资源博客网-致力于共享资源
  1. 选择 Apply (应用) 后,保持 Settings (设置) 对话框处于打开状态。
  2. 配置部署选项,使用 SFTP 将本地脚本上传到您的开发终端节点 (此功能仅在 PyCharm Professional 中可用):
    • 在 Settings (设置) 对话框中,展开 Build, Execution, Deployment (构建、执行、部署) 部分。选择 Deployment (部署) 子部分。
    • 选择中间窗格顶部的 + 图标,添加新服务器。将其 Type (类型) 设置为 SFTP 并为其命名。
    • 将 SFTP host (SFTP 主机) 设置为开发终端节点的 Public address (公有地址),如其详细信息页面上所示。(在 AWS Glue 控制台中选择开发终端节点的名称可显示详细信息页面)。对于正在 VPC 中运行的开发终端节点,请将 SFTP host (SFTP 主机) 设置为主机地址,并将 SSH 隧道的本地端口设置为开发终端节点。
    • 将 User name (用户名) 设置为 glue
    • 将 Auth type (验证类型) 设置为 Key pair (OpenSSH or Putty) (密钥对 (OpenSSH 或 Putty))。通过浏览到您的开发终端节点私有密钥文件所在的位置,设置 Private key file (私有密钥文件)。请注意,PyCharm 仅支持 DSA、RSA 和 ECDSA OpenSSH 密钥类型,不接受 Putty 的私有格式密钥。您可以使用最新版本的 ssh-keygen 生成 PyCharm 接受的密钥对类型,例如使用以下语法:
ssh-keygen -t rsa -f <key_file_name> -C "<your_email_address>"
  • 选择 Test connection (测试连接),并允许测试连接。如果连接成功,选择 Apply (应用)。

现在,Settings (设置) 屏幕上显示的内容应类似于:

保姆级教程:通过开发终端节点设置 PyCharm Professional-天云资源博客网-致力于共享资源
  1. 同样,选择 Apply (应用) 后,保持 Settings (设置) 对话框处于打开状态。
  2. 将本地目录映射到远程目录进行部署:
    • 在右侧窗格中,选择 Deployment (部署) 页面,选择顶部的中间选项卡,即标签为 Mappings (映射) 的选项卡。
    • 在 Deployment Path (部署路径) 列中,输入 /home/glue/scripts/ 下的路径,以部署您的项目路径。例如:/home/glue/scripts/legislators
    • 选择 应用
    现在,Settings (设置) 屏幕上显示的内容应类似于:
保姆级教程:通过开发终端节点设置 PyCharm Professional-天云资源博客网-致力于共享资源
  1. 选择 OK (确定) 以关闭 Settings (设置) 对话框。

将脚本部署到您的开发终端节点

  1. 选择 Tools (工具)Deployment (部署),然后选择要在其下设置开发终端节点的名称,如下图所示:
保姆级教程:通过开发终端节点设置 PyCharm Professional-天云资源博客网-致力于共享资源

部署脚本后,屏幕底部显示的内容应类似于:

保姆级教程:通过开发终端节点设置 PyCharm Professional-天云资源博客网-致力于共享资源
  1. 在菜单栏上,选择 Tools (工具)Deployment (部署)Automatic Upload (always) (自动上传(始终))。确保 Automatic Upload (always) (自动上传(始终)) 旁边显示了复选标记。启用此选项后,PyCharm 会自动将更改后的文件上传到开发终端节点。

配置远程解释器

将 PyCharm 配置为在开发终端节点上使用 Python 解释器。

  1. 从 File (文件) 菜单中,选择 Settings (设置)
  2. 展开项目 legislators,然后选择 Project Interpreter (项目解释器)
  3. 选择 Project Interpreter (项目解释器) 列表旁边的齿轮图标,然后选择 Add (添加)
  4. 在 Add Python Interpreter (添加 Python 解释器) 对话框的左侧窗格中,选择 SSH Interpreter (SSH 解释器)
  5. 选择 Existing server configuration (现有服务器配置),然后在 Deployment configuration (部署配置) 列表中,选择您的配置。您的屏幕上显示的内容应类似于以下图像。
保姆级教程:通过开发终端节点设置 PyCharm Professional-天云资源博客网-致力于共享资源
  1. 选择 Move this server to IDE settings (将此服务器移至 IDE 设置),然后选择 Next (下一步)
  2. 在 Interpreter (解释器) 字段中,将路径更改为 /usr/bin/gluepython(如果您使用的是 Python 2)或 /usr/bin/gluepython3(如果您使用的是 Python 3)。然后选择完成

在开发终端节点上运行您的脚本

要运行脚本,请执行以下操作:

  • 在左侧窗格中,右键单击文件名,然后选择 Run '<filename>' (运行“<filename>”)。在一系列消息之后,最终输出应显示计数和架构。
Count:   1961
root
|-- family_name: string
|-- name: string
|-- links: array
|    |-- element: struct
|    |    |-- note: string
|    |    |-- url: string
|-- gender: string
|-- image: string
|-- identifiers: array
|    |-- element: struct
|    |    |-- scheme: string
|    |    |-- identifier: string
|-- other_names: array
|    |-- element: struct
|    |    |-- lang: string
|    |    |-- note: string
|    |    |-- name: string
|-- sort_name: string
|-- images: array
|    |-- element: struct
|    |    |-- url: string
|-- given_name: string
|-- birth_date: string
|-- id: string
|-- contact_details: array
|    |-- element: struct
|    |    |-- type: string
|    |    |-- value: string
|-- death_date: string


Process finished with exit code 0

现在,您已设置为在开发终端节点上远程调试脚本。

版权声明 1 本网站名称:天云资源博客网
2 本站永久网址:https://www.tyzyj.cn/
3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 QQ1394025921进行删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容