0

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

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

4

1 回答 1

0

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

如果您直接在 Analytics Engine 集群上运行 spark,请跳过前两个步骤。

  1. 创建一个 Watson Studio 项目并与一个分析引擎服务关联。

  2. 创建一个使用 Analytics Engine Spark 服务的 scala Notebook

  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. 打开一个 hive 会话并验证您可以从 hive 查询表
    select * from src
于 2018-06-01T20:04:19.200 回答