当前位置: 首页 > 知识库问答 >
问题:

无法解析给定输入列的“column_name”:SparkSQL

袁单鹗
2023-03-14

我这里有一段简单的代码:

query = """
    select id, date, type from schema.camps
"""
df = spark.sql(query)

我收到一个错误,上面写着:

>     > "cannot resolve '`id`' given input columns:
>     > [ecs_snapshot, ecs_version, ecs_bundle_type]; line 2   

文件

根据提供的解决方案,我尽了最大努力。有趣的是,我在另一个表上有另一个查询,效果很好。非常感谢您的帮助。提前谢谢。

这是表的架构:

camps(
    
    id numeric(38,0) NOT NULL encode raw,
    name varchar(765) NULL encode zstd,
    type varchar(765) NULL encode zstd,
    YYYY varchar(765) NULL encode zstd,
    ZZZZ varchar(765) NULL encode zstd,
    LLLL varchar(765) NULL encode zstd,
    MMMM numeric(38,0) NULL encode zstd,
    NNNN  varchar(765) NULL encode zstd,
    date timestamp without time zone NULL encode zstd,
    PPPP numeric(38,0) NULL encode az64,
    PRIMARY KEY (marketplace_id, campaign_id)
)

共有2个答案

汪阳辉
2023-03-14

请尝试运行代码并显示结果。

import spark.implicits._

val df1 = spark.table("ads.dim_campaigns")
df1.printSchema()
// Please, show result

val df2 = df1.select(
  'campaign_id,
  'external_id,
  'start_date,
  'program_type,
  'advertiser_id
)
df2.printSchema()
// please, show result
伍嘉
2023-03-14

营地。表中不存在campaign\u id列。dim\u campaigns

此查询有效

>>> l = [[1],[2],[3]]
>>> df = spark.createDataFrame(l,['col_1'])
>>> df.createOrReplaceTempView('table')
>>> query = """SELECT table_alias.col_1 FROM table table_alias"""
>>> spark.sql(query).show()
+-----+
|col_1|
+-----+
|    1|
|    2|
|    3|
+-----+

此查询给出的错误与您的错误相同(请参见第x列,而不是第1列)

>>> l = [[1],[2],[3]]
>>> df = spark.createDataFrame(l,['col_1'])
>>> df.createOrReplaceTempView('table')
>>> query = """SELECT table_alias.col_x FROM table table_alias"""
>>> spark.sql(query).show()

/.../
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/apache-spark/2.4.5/libexec/python/pyspark/sql/session.py", line 767, in sql
    return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
  File "/usr/local/Cellar/apache-spark/2.4.5/libexec/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
  File "/usr/local/Cellar/apache-spark/2.4.5/libexec/python/pyspark/sql/utils.py", line 69, in deco
    raise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: "cannot resolve '`table_alias.col_x`' given input columns: [table_alias.col_1];
 类似资料:
  • 这是我的pom.xml,我得到的错误是: 无法解析的导入POM:无法将工件org.glassfish.jersey:jersey-bom:pom:2.9从/到central(http://repo.maven.apache.org/maven2):repo.maven.apache.org@第14行,第25列:未知主机repo.maven.apache.org org.glassfish.jers

  • 在1.4节,我们把“解析”定义为分析自然语言句子或形式语言语句之结构的过程。比如,编译器在将代码翻译成机器语言程序之前必须先进行解析。 此外,当你从文件或键盘读取输入时,一般也需要进行解析,以提取想要的信息并发现错误。 例如,我有一个文件distances,其中包含了美国主要城市之间的距离信息。这些信息是我从一个随机选择的网页(http://www.jaring.my/usiskl/usa/dis

  • 问题内容: 出于某种原因,在完成了Phonegap的非包含性说明(甚至没有提到设置ANT,或者没有遇到Ant和JDK的麻烦)之后,这根本不起作用: 它给出了5个错误,指出无法解析org.apache.cordova的事实。我完全确定此时该怎么办。请帮忙。这是在尝试使sdk正常工作并最终能够在eclipse中打开项目的3个小时之后。按照他们的文档中的步骤进行操作后,除非能弄清楚,否则我将浪费3个小时

  • 问题内容: 我在用macOS 10.13.5编写的MacBookPro上安装了Eclipse [Version:Photon Release(4.8.0)]和JDK 10。 我得到错误: 导入java.awt无法解析 是包含在JDK 10?如果是,在哪里,如何使Eclipse可见?如果没有,如何添加java.awt? 问题答案: 是包含在JDK 10? 是的,包裹确实存在。Java10 API文档

  • 问题内容: 我有一个问题,日食说它找不到javax.ejb.Schedule(或时间表),但与其他类(如javax.ejb.MessageDriven)没有问题。我正在处理一个我不太了解的大型应用程序。所以我的问题是如何解决这个问题?还是寻找方法? 问题答案: JBoos 4是兼容JEE5的服务器,因此JEE6功能不可用。