我试着用火花弹来做这件事:
val hiveCtx = new org.apache.spark.sql.hive.HiveContext(sc)
val listTables = hiveCtx.hql("show tables")
第二行无法执行以下消息:
警告:有1次反对警告;org.apache.spark.sql.hive.HiveQl$ParseException:未能解析:在org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.sca
INSERT INTO hive_table SELECT b.id,a.id FROM hive_table_1 a,hive_table_2 b WHERE a.id BETWEEN b.id1 AND b.id2;
在spark上执行这样的SQL -sql got错误:
错误CliDriver: org.apache.spark.sql.AnalysisException:缺少“hive_table”附近的表;第1行pos 12
在org.apache.spark.sql.hive.HiveQl$.createPlan(HiveQl.scala:289)
在org.apache.spa
我是个新手。我试图为联接实现一个简单的HiveQL查询。但是,由于缺乏HiveQl方面的知识,以及与HiveQL相关的互联网上可用资源少得令人惊讶,我不得不构建一个简单的查询,在常规SQL中只需几秒钟。
设想情况:
我有四张桌子。每个表都有"playerid“列。我只想将所有表连接在一起,并输出如下SQL中提到的结果。例:-
select A.column1 ,B.column2,C.column3,D.column4
from
Table1 A,Table2 B,Table3 C,Table4 D
where
A.playerid = B.playerid
and
A.playe
此命令适用于HiveQL:
insert overwrite directory '/data/home.csv' select * from testtable;
但是,使用Spark,我得到了一个org.apache.spark.sql.hive.HiveQl堆栈跟踪错误:
java.lang.RuntimeException: Unsupported language features in query:
insert overwrite directory '/data/home.csv' select * from testtable
请指导我
我正在使用Spark-SQL运行配置单元查询。我创建了一个蜂窝上下文对象
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc);
然后,当我尝试运行该命令时:
hiveContext.sql("use db_name");
或
hiveContext.hiveql("use db_name");
它不起作用。当我尝试运行时,它会显示database not found.
val db = hiveContext.hiveql("show databases");
db.co
我通常有一个很大的HiveQL块,我希望对一些变量使用不同的设置多次运行。
一个简单的例子是:
set mindate='2015-01-01 00:00:00'
set maxdate='2015-04-01 00:00:00'
select * from my_table where the_date between ${hiveconf:mindate} and ${hiveconf:maxdate}
然后通过hive -f myfile.sql > myout.log运行
稍后,我希望更改变量并重新运行。我还想要一个记录,说明每次运行变量时变量的值
我有几个星火数据(我们可以称之为表a,表b等)。我想要在表a中添加一个列,这是根据查询结果添加到另一个表中的,但是这个表每次都会根据表a的一个字段的值进行更改。所以这个查询应该是参数化的。下面我举一个例子来说明这个问题:
每个表都有列OID和具有当前表名称的列TableName,以及其他列。
This is the fixed query to be performed on Tab A to add new column:
Select $ColumnName from $TableName where OID=$oids
Tab A
| oids|T
Spark-shell:它基本上打开了scala>提示符。查询需要以下面的方式编写
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
// Queries are expressed in HiveQL
sqlContext.sql("FROM src SELECT key, value").collect().foreach(println)
spark-sql:它似乎与蜂巢转移直接相连,我们可以用类似的方式编写查询。并查询蜂箱中的现有数据。
我想知道这两者的区别..。在spark中处理任何查询
我在1.6.3 Spark版本中使用spark HiveContext运行hive merge命令,但它失败了,错误如下。
2017-09-11 18:30:33 Driver [INFO ] ParseDriver - Parse Completed
2017-09-11 18:30:34 Driver [INFO ] ParseDriver - Parsing command: MERGE INTO emp_with_orc AS T USING SOURCE_TABLE AS S
ON T.id = S.id
WHEN MATCHED AND (S.operation = 1) TH
我正在使用VisualStudio2010WindowsExpress和与Server 2012一起使用,当我试图将数据库连接到我的C#窗体项目时,我收到了一个错误。
"This file is in use. Enter a new name or
close the file that is open in another program"
我在网上四处打探,试图找到解决办法,但都没有效果。所以我决定创建一个全新的数据库和一个全新的项目。但我还是明白错误!
下面是我使用的步骤:
首先,我连接到本地托管服务器。
然后右击Databases并选择New Databas
我正在执行将查询从一种SQL方言转换到另一种SQL方言的ETL任务。旧的数据库使用T-Sql,新的是hiveQL。 SELECT CAST(CONCAT(FMH.FLUIDMODELID,'_',RESERVOIR,'_',PRESSUREPSIA) AS NVARCHAR(255)) AS FACT_RRFP_INJ_PRESS_R_PHK
, FMH.FluidModelID ,FMH.FluidModelName ,[AnalysisDate]
FROM dbo.LZ_RRFP_FluidModelInj fmi
LEFT JOIN
我最近从DB2搬到了hiveql。有一个查询,我用它递归地生成一个数字序列,比如1到1000。下面是使用的代码; WITH TB (N) AS
(VALUES (100)
UNION ALL
SELECT N + 100
FROM TB
WHERE N + 1 <= 5000)
SELECT * FROM TB; 我可以用这段代码生成任何我想要的序列, 但现在在Hiveql中,像VALUES()或WITH TB (N)这样的东西似乎不能像在DB2中那样工作。有没有办法在hiveql中生成这样的序列?