我想在 Watson Studio 中的 Jupyter 笔记本的分析引擎上使用 Spark 来读取和写入 Hive 表,但不清楚如何通过阅读 Spark 文档来做到这一点。 不清楚的原因是IBM Analytics Engine预配置了Spark,不提供root访问权限。
我在网上找到了一些关于通用 hadoop 的帖子,这些帖子描述了使用元存储位置创建配置单元.xml但不清楚如何将其转换为 IBM 分析引擎环境。 例如:无法使用 Spark 在 Hive 上写入数据
这是一个使用 scala 的示例...
如果您直接在分析引擎集群上运行 spark,请跳过前两个步骤。
-
创建 Watson Studio 项目并与 Analytics Engine 服务关联。
-
创建使用分析引擎 Spark 服务的 scala 笔记本
-
输入以下 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
- 从静态值创建数据帧以进行测试
val test_df = Seq(
(8, "bat"),
(64, "mouse"),
(-27, "horse")
).toDF("number", "word");
- >写入数据帧
test_df.write.mode("overwrite").saveAsTable("src");
- 现在验证您是否能够从 Spark 读取该表
val read_df = hc.sql("select * from src")
read_df.show
- 打开配置单元会话并验证是否可以从配置单元查询表。
select * from src