【问题标题】:PyCharm has no auto-completion for AWS Glue PythonPyCharm 没有 AWS Glue Python 的自动完成功能
【发布时间】:2021-10-01 03:53:04
【问题描述】:

我是 Python 和 AWS Glue 的新手,我无法为某些情况启用自动完成功能。

第一种情况:

dynamic_frame 没有 API 列表

如果我强制创建spark DataFrame,没有显示API列表,似乎DataSource0是未知的。

glueContext 显示了 API 列表:

第二种情况:

可以创建 Spark DataFrame 并显示 API 列表。由于我是 AWS Glue 的新手,我不确定这是使用 DynamicFrame 的对象进行 DF 转换的最佳做法,而不是直接使用 .toDF(),会有什么影响。

第三种情况:

定义要显示 API 列表的类型。再说一次,我是 Python 新手,我来自 C/JAVA/SCALA 背景,所以我不知道这会是怪异还是“非 Python”代码风格。

环境Anaconda 安装的 Python 3.6 pysparkAWS Glue 已通过 pip 安装

【问题讨论】:

    标签: python autocomplete pycharm aws-glue


    【解决方案1】:

    要解决第一种情况,请尝试在变量 DataSource0 : DynamicFrame 前面添加类型提示。

    IDE 的 Linter 尝试在单独的后台进程中运行您的代码,以解析类型并填充自动完成列表。如果您使用类型提示,您将帮助 Linter 确定属性的类型,因此 IDE 不必动态确定类型。

    自动完成功能与其他示例中的库函数一起使用的原因是,在这些情况下,Linter 不需要解析动态代码。库函数本身是明确确定的。

    有时 PyCharm 也需要几秒钟来解决自动完成问题,所以不要强制菜单,给它几秒钟的时间让后台 Linter 进程在写入变量和点之间完成(Ctrl+空格之后显示自动完成)。

    在您的情况下,这些库函数也有几个层次的深度,这使得 IDE 更重地解决自动建议。在这种情况下,Flat 确实比嵌套更好。但这不是问题,只是带来不便,只要代码正确,它就会在运行时按预期执行(如果没有偶尔的自动建议帮助,编写代码确实会变得更加困难)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 2023-03-12
      • 2022-10-16
      相关资源
      最近更新 更多