【问题标题】:How can I use PL Sql in Hive using Spark?如何使用 Spark 在 Hive 中使用 PL Sql?
【发布时间】:2016-04-15 04:06:45
【问题描述】:
val hiveContext = new HiveContext(sc)

val s = hiveContext.sql("SELECT * FROM Test")

但是不知道如何在 hive 中使用 PL SQL。请帮帮我。

【问题讨论】:

  • SELECT * FROM Test 不是 PL/SQL,而是普通 SQL。
  • 是的,它不是 pl sql 。我不知道如何使用它

标签: sql scala apache-spark


【解决方案1】:

在 hivecontext.sql() 中使用 PL/SQL 代码没有意义,因为它需要查询字符串而不是过程。 该方法返回一个新的数据帧,并且不会像通常在 PL/SQL 代码中那样执行操作。 https://spark.apache.org/docs/1.3.0/api/java/org/apache/spark/sql/hive/HiveContext.html

【讨论】:

  • 有什么方法可以在 Hive 中使用 Spark 进行程序格式化
【解决方案2】:

它出现在the answer is "yes",我通过谷歌搜索“hive spark pl/sql”在大约 20 秒内找到了它。它有一个reference manual here

HPL/SQL 是一个开源工具(Apache License 2.0),它实现了 用于 Apache Hive、SparkSQL、Impala 以及 任何其他 SQL-on-Hadoop 实现、任何 NoSQL 和任何 RDBMS。

HPL/SQL 是一种混合异构语言,可以理解 几乎所有现有的过程 SQL 方言的语法和语义, 并且您可以与任何数据库一起使用,例如,运行现有的 Apache Hive 和 Microsoft SQL Server 上的 Oracle PL/SQL 代码,或正在运行 Oracle、Cloudera Impala 或 Amazon Redshift 上的 Transact-SQL。

HPL/SQL 语言在很大程度上兼容Oracle PL/SQL、ANSI/ISO SQL/PSM(IBM DB2、MySQL、Teradata 即)、PostgreSQL PL/pgSQL(Netezza)、 Transact-SQL(Microsoft SQL Server 和 Sybase)允许您 利用现有的 SQL/DWH 技能和熟悉的方法来实施 Hadoop 上的数据仓库解决方案。也有利于移民 现有的业务逻辑到 Hadoop。 HPL/SQL 是一种有效的方法 在 Hadoop 中实现 ETL 流程

.

【讨论】:

  • sparksql 1.6.1 与提供 HQL (spark.apache.org/docs/latest/…) 的 hive 2.0 不兼容
  • 谢谢。遗憾。 Spark 是否宣布了支持更高 Hive 版本的计划?
  • 老实说,我不知道有任何 JIRA 与 spark 中的 hive 2.0 集成有关。他们现在正在开发 spark 2.0,所以可能需要一段时间。
猜你喜欢
  • 1970-01-01
  • 2019-09-21
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 2020-04-12
  • 1970-01-01
  • 2015-07-23
  • 2021-06-25
相关资源
最近更新 更多