Как читать и записывать таблицы улья из Apache Spark на Analytics Engine - PullRequest
0 голосов
/ 01 июня 2018

Я бы хотел использовать Spark на аналитическом движке из записной книжки Jupyter в Watson Studio, чтобы иметь возможность читать и писать в таблицы Hive, но не совсем ясно, как я могу это сделать, просто читая документацию Spark .Причина, по которой это неясно, заключается в том, что IBM Analytics Engine поставляется с предварительно сконфигурированным Spark и не предоставляет root-доступ.

Я нашел в Интернете несколько публикаций для универсального hadoop, описывающего создание файла hive.xml сместоположение метастаза, но неясно, как это переводится в среду IBM Analytics Engine.Например: Невозможно записать данные в улей с помощью spark

1 Ответ

0 голосов
/ 01 июня 2018

Вот пример использования scala ...

Пропустите первые два шага, если вы запускаете spark непосредственно в кластере Analytics Engine.

  1. Создание WatsonStudio Project и связывание со службой Analytics Engine.

  2. Создание ноутбука Scala, использующего службу Spark Analytics Engine

  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
Создание Dataframe из статических значений для тестирования
    val test_df = Seq(
      (8, "bat"),
      (64, "mouse"),
      (-27, "horse")
    ).toDF("number", "word");
Записать фрейм данных
    test_df.write.mode("overwrite").saveAsTable("src");
Теперь убедитесь, что вы можете прочитать таблицу с искры
    val read_df = hc.sql("select * from src")
    read_df.show
Откройте сеанс куста и убедитесь, что вы можете запросить таблицу из улья
    select * from src
...