hadoop - Spark 作为 Hive 的引擎

标签 hadoop hive apache-spark bigdata

我们可以使用 Spark 作为 Hive 的引擎吗?

我们在 Hive 中有许多遗留系统和代码库,并且希望将 Spark 与 Hive 结合使用。

最好的,

最佳答案

两个选项,如果你想在 spark 上运行 hive,这是可能的,但它是一个非常 alpha 特性:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

恕我直言,你最好使用 Spark SQL 和指定的 HiveContext,你可以这样使用:

// sc is an existing SparkContext.
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

sqlContext.sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING)")
sqlContext.sql("LOAD DATA LOCAL INPATH 'examples/src/main/resources/kv1.txt' INTO TABLE src")

// Queries are expressed in HiveQL
sqlContext.sql("FROM src SELECT key, value").collect().foreach(println)

总而言之,我建议您使用 Spark SQL 加载 Hive 表并重用所有 Hive 查询,但要通过 Spark SQL 的 API。

您可以在这里找到更多信息:http://spark.apache.org/docs/1.2.0/sql-programming-guide.html

这是否回答了您的问题?

问候,

关于hadoop - Spark 作为 Hive 的引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842487/

相关文章:

java - Hadoop MapReduce使用相同的键添加值-Java

hadoop - 将 S3 用于 HIVE 元存储?

azure - 在Azure Hdinsight上将数据从HDFS加载到Hive时出错

java - Spark Dataframe 在指定架构时返回 NULL

hadoop - 在 hadoop/map reduce 中读取 avro 格式数据

hadoop - distcp本地文件到hadoop

hive - hive中的=和==有什么区别

python - 错误状态'。 (35) (SQLExecDirectW)

python - 使用 Parquet 存储多个不同宽度的数据帧?

java - Spark Java - 无法获取 java.lang.String 的正确类标签