Python 代码返回无法识别的错误

Posted

技术标签:

【中文标题】Python 代码返回无法识别的错误【英文标题】:Python Code Returning an Unrecognized Error 【发布时间】:2020-10-08 10:25:42 【问题描述】:

我收到以下语法错误

SyntaxError: invalid syntax
  File "<command-3092209798892761>", line 6
    .agg(avg("sale_price").as("average_price"))
                            ^

使用以下代码:

t1.join(t2, Seq("make", "model"))\
  .filter(abs(t2("engine_size") - t1("engine_size")) <= BigDecimal("0.1"))\
  .groupBy("registration")\
  .agg(avg("sale_price").as("average_price"))

谁能帮忙解释一下这个错误

【问题讨论】:

作为python中保存的关键字,你确定这是你要运行的函数吗? 嗨@Mogi,感谢您与我们联系。是的,如果我尝试运行,我需要它作为示例。另外,您能告诉我函数 Seq() 的作用/含义吗? 您能解释一下为什么会出现语法错误吗? 为了您的信息,我从这里得到了代码coxautomotivedatasolutions.github.io/datadriven/spark/… ahhhhh .... 我只是想,代码可能需要用 Scala 编写吗? 【参考方案1】:

as 是一个 Python 关键字 - 例如,您可以看到它在 import numpy as np 中使用。

这使得无法将其用作变量、函数或方法名称。

在使用 Python 时,您应该使用等效的 alias

t1.join(t2, Seq("make", "model"))\
  .filter(abs(t2("engine_size") - t1("engine_size")) <= BigDecimal("0.1"))\
  .groupBy("registration")\
  .agg(avg("sale_price").alias("average_price"))

【讨论】:

Thierry,关于 Python 中别名的 cmets,这就是我的想法。但是,为什么我不能只使用我们 AS average_price?另外,你能告诉我 Seq() 是做什么的吗? 我现在在 Python NameError: name 't1' is not defined 中遇到错误可能我需要在 Scala 中编写这个? 当我尝试在 scala 中运行代码时,如链接中所述,收到以下错误:command-3092209798892765:2: error: not found: value abs .filter(abs(t2("engine_size") - t1("engine_size")) &lt;= BigDecimal("0.1")) ^ command-3092209798892765:4: error: not found: value avg .agg(avg("sale_price").as("average_price")).collect() ^ 我认为有人可以帮助我,他们需要查看链接中的示例coxautomotivedatasolutions.github.io/datadriven/spark/… 请注意,SO 要求重点关注问题,以便他们有机会对遇到相同或非常相似问题的其他用户有用。由于这些是不同的问题,如果您无法解决这些问题,您可能应该问另一个问题。

以上是关于Python 代码返回无法识别的错误的主要内容,如果未能解决你的问题,请参考以下文章

gcc:错误:无法识别的命令行选项“-mfpu=neon-vfpv4”

Swift:手势识别器无法识别的选择器发送到实例

不可识别数据库格式

分析器错误消息: 无法识别的属性“targetFramework”。

如何在同一个 python 脚本中使用 sys 和 argparse 而不会出现无法识别的参数错误?

无法识别的属性“targetFramework”。请注意属性名称区分大小写。