带有 HIVE 的 SparkSQL

Posted

技术标签:

【中文标题】带有 HIVE 的 SparkSQL【英文标题】:SparkSQL with HIVE 【发布时间】:2015-05-02 04:11:10 【问题描述】:

我正在尝试使用 SparkSQL 使用 HIVEContext,当我创建时

val hContext = new org.apache.spark.sql.hive.HiveContext(sc)

我知道 hive 不是 spark.sql 中的成员,当我查看 documentation 时,它说我应该使用 sbt/sbt -Phive assembly/assembly 但是我怎么能运行它呢?我不明白我应该用什么替换组件?

【问题讨论】:

您是下载 spark 程序集还是从源代码编译的?? 【参考方案1】:

要获得 hive 支持,您必须下载源代码,然后使用 sbtmaven 构建它。以下是执行此操作的步骤列表:

    从Spark Downloads 下载 Spark 源代码,确保选择“包类型”作为“源代码”。为方便起见,这里是下载Spark 1.3 source的直接链接。

    下载后使用 maven 进行提取和编译,因为 maven 是推荐的构建方式:

    tar xzf spark-[version].tgz
    cd spark-[version]
    ./make-distribution.sh --skip-java-test --tgz -Dhadoop.version=2.4.0 -Pyarn -Phive -Phive-thriftserver
    
    这将在项目根目录中创建一个 tar 球,名称为 spark-[version]-bin-2.4.0.tgz,可以方便地传送到集群或在单台机器上提取。

【讨论】:

如何用maven编译? 我是新手,你能解释一下我在这个新项目中的哪里可以设置我的代码吗? 其实mvn已经是源码下载的一部分(位于build/mvn)。只需使用make_distribution.sh,它将负责使用内置的 mvn 二进制文件。 “在这个新项目中设置我的代码”是什么意思?

以上是关于带有 HIVE 的 SparkSQL的主要内容,如果未能解决你的问题,请参考以下文章

Hive:使用 select 1 插入带有列的 hive 表

带有文件 Json 的 Hive 中的 UDF python

Hive:无法插入到带有地图列的表中

带有多个子查询的 SQL 错误 10249 Hive

带有没有分隔符的数据的 Hive

在 hive 中创建带有附加列的表