问题标签 [hivecontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1036 浏览

java - 火花 SQL sql("").first().getDouble(0) 给我不一致的结果

我有下面的查询,它应该找到列值的平均值并将结果返回给我,它是一个数字。

我在此声明中面临不一致的行为。这通常会因以下错误而失败,但是通过 Hive 执行时会给出非 NULL 结果。”

我使用 HiveContext 而不是 SQLContext 的原因是后者不支持我在代码中广泛使用的一些聚合函数。

你能帮我理解为什么会出现这个问题以及如何解决吗?

0 投票
1 回答
2242 浏览

apache-spark - 使用在 spark 2.3.0 上创建的 hive 上下文查询 hive 数据库

我可以使用以下方法在 spark 1.6.0 上以编程方式创建配置单元上下文:

这对我来说很好。同样,我想在 spark 2.3.0 上创建一个配置单元上下文,但是在运行程序时,它会抛出以下错误:

我知道 HiveContext(sc) 在 2.3.0 中已被弃用,但是当在 spark-shell 上将这些作为命令运行时,它们也会给出结果。另外,我想让程序对两个版本的 spark 都通用。有人可以建议一些不使用配置单元数据库文件名直接查询配置单元表的方法吗?

以下是我用来远程连接的 hive-site.xml -

在这里,fqdn 在运行时被主机 hdfs FQDN 替换,并且在 spark 1.6.0 上完美运行。

0 投票
1 回答
271 浏览

scala - Spark2 无法在远程 hdfs 集群上找到表或视图

我正在使用 HiveContext 通过 spark 1.6.0 远程查询 hdfs 集群上的配置单元表,并且能够成功执行此操作。但是,当通过 spark 2.3.0 这样做时,会抛出以下内容:

通过这条消息,我只能解释一件事,它可能是在本地而不是远程搜索数据库。我正在使用以下方法创建火花上下文:

所有配置文件都存在于我项目的资源文件夹中。以下是我的 hive-site.xml:

fqdn 在运行时被远程 hdfs FQDN 替换。此外,当我通过 spark2 在存在 hive 数据库的远程集群本身上运行相同的代码时,它会给出结果。那么,我如何远程运行代码?

0 投票
0 回答
1034 浏览

apache-spark - PySpark 在失败时重新启动 SparkContext

我需要为 Hive 数据库中的每个表计算一些聚合。我的代码是这样的:

在某个时刻,巨大的表读取会引发异常,并且 SparkContext 会关闭。从此时起,对 sqlContext 的每次调用都会失败:

截至目前,我无法为我的工作添加资源,但我想重新启动 SparkContext 并继续在 for 循环的剩余表中计算聚合。

检查 SparkContext 是否在异常处理程序中关闭并最终重新创建它是一个好(且可行)的想法:

我正在使用 Spark 1.6.1 版,使用--master yarn --deploy-mode 客户端运行作业

0 投票
1 回答
7448 浏览

scala - 列不是 org.apache.spark.sql.DataFrame 的成员

我是 spark 新手,我正在尝试从 Scala 代码加入 hive 中的两个表:

但是对于上述加入我得到了错误:

如果不是出了什么问题,这是加入蜂巢表的正确方法吗?

还有一个问题......在 Scala 中加入 hive 表与 hive 中的相同加入考虑到性能,哪一种方法更好?使用 hiveContext 在 Scala 中执行此操作是否正确?

提前致谢!!

0 投票
0 回答
185 浏览

scala - Spark 作业在执行时仅创建 1 个阶段任务

我正在尝试使用 Spark 2.1.1 将数据从 DB2 加载到 Hive。& 斯卡拉 2.11。使用的代码如下

使用的 Spark 提交命令是

这项工作需要 30 多分钟才能完成。编号:表中的记录数为 34901381 及其 678.7422 MB。我添加了列、numPartitions、下限和上限值。我需要每小时执行一次作业以从表中获取整个数据。

请帮助解决为什么该程序只生成 1 个阶段任务以及如何减少该作业的执行时间。

谢谢,

阿姆鲁塔 K

0 投票
2 回答
23271 浏览

apache-spark - 外部 Hive 表刷新表与 MSCK 修复

我将外部配置单元表存储为 Parquet,按列分区,as_of_dt并通过火花流插入数据。现在每天都会添加新分区。我这样做是为了 msck repair table让 hive 元存储获取新添加的分区信息。这是唯一的方法还是有更好的方法?我担心如果下游用户查询表,是否会msck repair导致数据不可用或数据陈旧的问题?我正在浏览 HiveContextAPI 并查看refreshTable选项。知道这是否有意义refreshTable吗?

0 投票
0 回答
83 浏览

dataframe - 在 pyspark 配置单元上下文中创建配置单元表

我在 abc hive 数据库中有 3 个 Avro 格式的表。我想创建另一个数据库(def)并通过数据框在 hivecontext pyspark 中创建这 3 个表。更多信息:在 abc 数据库 3 表中,所有列都是 b 字符串,但是当我创建它以定义数据库时,这些表应该使用其各自的列创建。例如,abc 数据库 Table1 —>name : string,id:string,dob:string

但是在我想创建 def 数据库表 1 __>name: varchar,I'd:int, dob: timestamp

0 投票
1 回答
509 浏览

apache-spark - Oozie Spark Action (Containing HiveContext) Giving java.lang.OutOfMemoryError: PermGen space

I'm trying to run a spark-scala Self-Contained App in Oozie. Please note that I'm using CDH5.13 Quickstart VM with 20G of RAM (containing Cloudera Manager, HUE ..., and I uppgraded Java from 7 to 8).

The code does pretty much nothing, it just create HiveContext and then create a Hive table:

sbt file:

The App worked fine when I submited it (in shell), and the Hive table was created. But when I runned the same App in oozie it gives Memory issues.

Please note that i'm used to run spark apps in oozie and they work fine except for this use case that contains hiveContext.

Here is the workflow.xml:

Here is the job.properties:

Kindly be informed that I added spark superuser group from Cloudera Manager > Category > Security > Superuser group , to avoid Permission issues:

Adding spark to superuser group (Cloudera Manager View)

hive-site.xml view

stdout logs:

stderr logs:

syslog:

And I also looked for logs in Cloudera Manager > Logs > ERROR:

Here is an (approximate) full view of the logs:

/var/log/spark/...log

/var/log/hadoop-hdfs/...log.out

I've tried to fix these problems by:

Increasing memory for map/reduce in mapred-site.xml:

Global View of mapred-site.xml

I tried also to increase Java Heap: View of Java Heap in Cloudera Manager

I tried also to set Gateway Default Group: View of Client Java Configuration Options

And I've tried to add Options list in the workflow that says: --driver-memory 5G

But it's always giving the same error. Could you please Help!

0 投票
0 回答
729 浏览

apache-spark - 无法从 Spark-Sql 连接到 Hive

我正在尝试使用 Spark-SQL 连接到 Hive,但它无法从 hive 读取表。

火花版本:2.4.0

我正在尝试连接到 Hive 中默认数据库中的表。但它抛出错误。

以下是 Hive 和 Spark 的详细信息。

我希望使用 Spark-SQL 读取该表,但不确定为什么它的 throwing object not found 错误。