如何从分析引擎上的 Apache Spark 读取和写入配置单元表

How to read and write to hive tables from Apache Spark on Analytics Engine

我想在 Watson Studio 中的 Jupyter notebook 上使用分析引擎上的 Spark 来读取和写入 Hive 表,但不清楚如何通过读取 Spark documentation。不清楚的原因是 IBM Analytics Engine 预配置了 Spark,不提供 root 访问权限。

我在网上找到了一些关于通用 hadoop 的帖子,这些帖子描述了使用 Metastore 位置创建 hive.xml,但不清楚如何将其转换为 IBM Analytics Engine 环境。例如:Unable to write data on hive using spark

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

如果您 运行 直接在分析引擎集群上使用 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. 从静态值创建 Dataframe 进行测试
    val test_df = Seq(
      (8, "bat"),
      (64, "mouse"),
      (-27, "horse")
    ).toDF("number", "word");
  1. 写入数据帧
    test_df.write.mode("overwrite").saveAsTable("src");
  1. 现在验证您是否能够从 spark
  2. 中读取 table
    val read_df = hc.sql("select * from src")
    read_df.show
  1. 打开一个 Hive 会话并确认您可以从 Hive
  2. 查询 table
    select * from src