Как читать и записывать таблицы улья из Apache Spark на Analytics Engine
Я хотел бы использовать Spark на аналитическом движке из записной книжки Jupyter в Watson Studio, чтобы иметь возможность читать и писать в таблицы Hive, но неясно, как я могу это сделать, просто читая документацию Spark. Причина, по которой это неясно, заключается в том, что IBM Analytics Engine поставляется с предварительно настроенной Spark и не предоставляет root-доступ.
Я нашел в Интернете несколько сообщений об общем хэдупе, в которых описывается создание файла hive.xml с местоположением метастаза, но неясно, как это переводится в среду IBM Analytics Engine. Например: невозможно записать данные в улей с помощью искры
1 ответ
Вот пример использования scala ...
Пропустите первые два шага, если вы используете spark непосредственно в кластере Analytics Engine.
Создайте проект Watson Studio и свяжитесь со службой Analytics Engine.
Создайте записную книжку scala, в которой используется служба Google Analytics Spark
Введите следующий код 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