如何在分析引擎上从 Apache Spark 读取和写入 Hive 表



我想在 Watson Studio 中的 Jupyter 笔记本的分析引擎上使用 Spark 来读取和写入 Hive 表,但不清楚如何通过阅读 Spark 文档来做到这一点。 不清楚的原因是IBM Analytics Engine预配置了Spark,不提供root访问权限。

我在网上找到了一些关于通用 hadoop 的帖子,这些帖子描述了使用元存储位置创建配置单元.xml但不清楚如何将其转换为 IBM 分析引擎环境。 例如:无法使用 Spark 在 Hive 上写入数据

这是一个使用 scala 的示例...

如果您直接在分析引擎集群上运行 spark,请跳过前两个步骤。

  1. 创建 Watson Studio 项目并与 Analytics Engine 服务关联。

  2. 创建使用分析引擎 Spark 服务的 scala 笔记本

  3. 输入以下 scala 代码以检索 HiveContext 并列出 Hive 数据库(如果有(

import org.apache.spark.sql.hive.HiveContext
val hc = new HiveContext(sc)
// uncomment and adjust the next line if you are using
// Compose mysql for the hive metastore
/*
hc.setConf("hive.metastore.warehouse.dir", 
"mysql://admin:password@sl-us-south-1-portal.13.dblayer.com:32023/compose");
*/
import hc.implicits._
val df = hc.sql("show databases")
df.show
  1. 从静态值创建数据帧以进行测试
val test_df = Seq(
(8, "bat"),
(64, "mouse"),
(-27, "horse")
).toDF("number", "word");
  1. >写入数据帧
test_df.write.mode("overwrite").saveAsTable("src");
  1. 现在验证您是否能够从 Spark 读取该表
val read_df = hc.sql("select * from src")
read_df.show
  1. 打开配置单元会话并验证是否可以从配置单元查询表。
select * from src

最新更新