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

在Spark SQL中使用map datatype查询配置单元表时出错。但是在HiveQL中执行时工作

方茂
2023-03-14

我有下面结构的蜂房桌子

+---------------+--------------+----------------------+
| column_value  | metric_name  |         key          |
+---------------+--------------+----------------------+
| A37B          | Mean         | {0:"202006",1:"1"}  |
| ACCOUNT_ID    | Mean         | {0:"202006",1:"2"}  |
| ANB_200       | Mean         | {0:"202006",1:"3"}  |
| ANB_201       | Mean         | {0:"202006",1:"4"}  |
| AS82_RE       | Mean         | {0:"202006",1:"5"}  |
| ATTR001       | Mean         | {0:"202007",1:"2"}  |
| ATTR001_RE    | Mean         | {0:"202007",1:"3"}  |
| ATTR002       | Mean         | {0:"202007",1:"4"}  |
| ATTR002_RE    | Mean         | {0:"202007",1:"5"}  |
| ATTR003       | Mean         | {0:"202008",1:"3"}  |
| ATTR004       | Mean         | {0:"202008",1:"4"}  |
| ATTR005       | Mean         | {0:"202008",1:"5"}  |
| ATTR006       | Mean         | {0:"202009",1:"4"}  |
| ATTR006       | Mean         | {0:"202009",1:"5"}  |

select * from your_data where key[0] between  '202006' and '202009' and key NOT IN ( map(0,"202009",1,"5") );

但是当我在Spark SQL中尝试相同的查询时。我犯了错误

由于数据类型不匹配,无法解析:在org.apache.spark.sql.catalyst.analysis.package$analysiserrorat.failanalysis(package.scala:42)在org.apache.spark.sql.catalyst.analysis.checkanalysis$$$anonfun$checkanalysis$1$$anonfun$apply$3.applyrelse(checkanalysis.scalysis$115)在org.apache.spark.sql.catalyst.trees.treenode$$anone fun$transformUp$1.在org.apache.spark.sql.catalyst.trees.treenode$$$anonfun$transformUp$1.在org.apache.spark.catalyst.trees.treenode$$$anonfun$1.在org.apache.spark.catalyst.treenode$$$anonfun$transformUp$1.在org.apache.spark.scark.catalyst.treenode$$$anonfun$transformUp$1.在k.sql.catalyst.trees.treenode$$AnonFun$3.在org.apache.spark.sql.catalyst.trees.treenode应用(Treenode.scala:275)$$Anonfun$4.在org.apache.spark.sql.catalyst.trees.treenode.mapproductIterator(treenode.scala:187)在org.apache.spark.sql.catalyst.trees.mapchildre(treenode.scala:324)在org.apache.spark.sql.catalyst.trees.transformup(treenode.scala:275)在org.apache.spark.sql.catalyst.trees.treenode.transformup(l.catalyst.trees.treenode$$anonfun$3.应用(treenode.scala:275)在org.apache.spark.sql.catalyst.trees.treenode$$anonfun$4.应用(treenode.scala:326)

请救命!

共有1个答案

洪高阳
2023-03-14

我从我以前提出的不同问题中得到了答案。这个查询运行良好

从your_data中选择*,其中键[0]在202006和202009之间,而不是(key[0]=“202009”和key[1]=“5”);

 类似资料:
  • 低于范围的查询与连接工作正常lap,但不是在Hiveserver2/Hive. CLI。 请建议如何在Hive中使用范围连接查询。 配置单元版本:1.2.1.2.6 HDP版本:2.6.0.3 查询: 下面是在配置单元CLI或配置单元服务器2中运行时引发的错误: 错误:编译语句时出错:失败:SemanticException行0:-1在联接“obsv_stop_ts”(状态=42000,代码=40

  • 我试图运行此函数以获取配置单元中的当前日期,但出现以下错误: 编译语句时出错:FAILED:SemanticExctive无有效特权此查询所需的特权:Server=server1- 我在网上搜索,并被建议以下功能来获取Hive中的当前日期,但都给出了相同的错误: 但是,如果我按照给定的方式运行它们,它们都会显示错误。

  • 我对Neo4J花了不少心思,但对graphql却一筹莫展 我通过运行以下操作创建了graphql模式: 我有一个带有三个标签的节点类型。我尝试在graphiql中运行以下查询,得到了同样的错误。由于堆栈的原因,我想知道graphiql是否在添加meta并移动到了neo4j浏览器--同样的错误。 查询: 错误: 我可能做了一些明显错误的事情,但任何帮助都将是感激的

  • 我为Hive JDBC编写了这个小程序。起初,它执行得很好,但当我现在试图运行时,突然出现了错误。 错误类似于:线程“main”java中的异常。lang.composibleClassChangeError:class com。脸谱网。fb303。FacebookService$客户端具有接口组织。阿帕奇。节约TServiceClient作为超级类 我到底是怎么了?我已经添加了蜂巢所需的所有罐子

  • 失败:执行错误,从org.apache.hadoop.hive.ql.exec.FunctionTask返回代码1。配置单元仓库是非本地的,但是/home/hduser/hadoop-tutorial/hadoop-book-master/ch17-hive/src/main/java/com/hadoopbook/Hive/strip.jar指定本地文件系统中的文件。非本地仓库上的资源应指定非本

  • 18/04/25 11:58:34 INFO sparkcontext:Created broadcast 0 from Traceback(最近的调用为last):文件“/users/xxxxx/scripts/hive/hive.py”,第12行,在spark.sql(“select*from pokes”).show()文件“/usr/local/cellar/apache-spark/2.